在SQL中这可能吗?这似乎是一个简单的概念。(我正在使用SQL Server 2005)
循环遍历我的SQL表中的所有行,如果一行= 65,下一行等于120,则比较m列中的值j,并在另一列中打印该值(第q列)
Sub InsertProductionCycle()
Dim LR As Long
Dim j As Integer
j = 1
LR = Range("G" & Rows.Count).End(xlUp).Row
For i = 1 To LR Step 1
Cells(i, "Q").Value = j
If Cells(i, "M").Value = 65 And Cells(i + 1, "M").Value = 190 Then
j = j + 1
End If
Next i
End Sub
SQL专家有什么想法吗?我可以在SQL中执行此操作吗?我的想法是:也许循环有点长(我可以在sql作业中运行它),但是可以比较行并将j循环值插入另一列中。那就是我被困住的地方。
这是一个有趣的!可能有一种更有效的方法来执行此操作,但是您可以在单个基于集合的语句中执行此操作,而无需循环或游标。
假设一个用来模拟数据的表看起来像这样(i
基本上是行号):
CREATE TABLE MyTable (i int, M int)
我使用自联接将i
行与i+1
行进行匹配,并使用aCOUNT
来确定Q
列。
;WITH data AS (
SELECT a.i, a.M, b.M as NextM
, CASE WHEN a.M = 65 AND b.M = 190 THEN 1 ELSE 0 END AS shouldIncreaseQ
FROM MyTable a
LEFT OUTER JOIN MyTable b
ON a.i + 1 = b.i
)
SELECT data.M, data.NextM
, (SELECT COUNT(*) + 1 FROM data AS ref
WHERE ref.shouldIncreaseQ = 1 AND ref.i <= data.i) as Q
FROM data
如果需要,您可以使用SELECT INTO将数据放入另一个表中以备将来使用。
问题内容: 我正在使用sqlite数据库。我的表架构是 表中的内容是这样的: 我使用以下sql语句选择名称及其按名称和dt分组的相应分数总和。 我有 现在,我想扩展查询,以便sql语句可以搜索其分数总和在不同时间(dt)不变的内容。在这种情况下,输出应为: 如何编写这样的sql? 问题答案: 这可以通过自我(反)联接来实现:
这是一个Java代码,应该测试小数点后的前三位是否相同。而我需要编写这个程序没有一个主方法。
问题内容: 我需要查询一个表并选择4列的值中的3个。我需要比较第三列和第四列的值,然后选择较大的值。 例如: 我需要退货: 我一直在尝试使用IF / ELSE,但是我似乎无法正确使用语法 问题答案: 在T-SQL中, IF 命令用于程序控制。例如: 在SQL语句中,您需要 CASE 。
问题内容: 下面的每个示例…从解析的JSON字符串遍历对象将返回错误“对象不支持此属性或方法”。谁能建议如何进行这项工作?非常感谢(我花了6个小时在这里问一个答案)。 将JSON字符串解析为对象的函数(可以正常运行)。 循环遍历已解析的对象将返回错误“对象不支持此属性或方法”。 PS。我已经研究了这些库: - VBA的JSON无法获得的例子工作。 - VBJSON有没有包括VBA脚本(这可能工作,
我尝试在特定工作表中循环包含数据的单元格,然后将该行中的每个单元格打印到文件中。 这是我的代码,但打印行的语法有误。我不明白这是什么问题。我正试图为包含数据的每一行打印A列中的内容。