-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