-1
我已经在我的数据库提供以下资料:T-SQL:搜索子查询
Docnr Weight1 Weight2
F4879 479,43 484,62
F6463 505,43 509,62
F6464 505,43 509,62
F8461 531,43 535,62
F9716 532,43 561,62
F6461 533,43 561,62
F6137 609,43 613,62
F9843 609,43 613,62
F9764 635,43 613,62
现在我想作为输出这样一个额外的列“警告”:
Docnr Weight1 Weight2 Warning
F4879 479,43 484,62 1
F6463 505,43 509,62 2
F6464 505,43 509,62 1
F8461 531,43 535,62 3
F9716 532,43 561,62 2
F6461 533,43 561,62 1
F6137 609,43 613,62 2
F9843 609,43 613,62 1
F9764 635,43 613,62
计算“警告“: Warning = number of rows ahead where value(Weight2) <= value(Weight1)
例如:
Column 'Warning' in row 1 is 1 because
Check 484,62 <= 505,43: Yes -> 1 row ahead
Column 'Warning' in row 2 is 2 because
Check 509,62 <= 505,43: No
Check 509,62 <= 531,43: Yes -> 2 rows ahead
Column 'Warning' in row 4 is 3 because
Check 535,62 <= 532,43: No
Check 535,62 <= 533,43: No
Check 535,62 <= 609,43: Yes -> 3 rows ahead
有没有人有线索如何写我的声明输出上述结果?
那你试试这么远吗?请显示一些努力,SO不是代码生成器服务。一个提示开始:'CASE ... WHEN' – Pred
'Warning'列如何获取值?逻辑? – Ravi
此查询是更大查询的一部分。这部分我真的不知道如何在SELECT中编写语句。同事们建议我循环使用计数器。这不是我懒得搜索解决方案... 列'警告'是计算列 – Jan