這個問題的標題,因爲我發現很難簡明我想解釋什麼是可能的措辭不當,除了提供一些演示數據。SQL查詢來添加計算字段,比較數據行
我有一個查詢,從SQL表返回以下數據:
ID Job User Amount
1 101 Bob 100
2 101 Pete 500
3 102 Bob 400
4 102 Pete 200
5 101 Pete 850
6 102 Bob 650
我要的是查詢也返回調用(差)的附加字段,其中包含的金額之間的差額連續輸入同一用戶和作業。因此,我想返回將是作爲數據如下:
ID Job User Amount Diff
1 101 Bob 100 100
2 101 Pete 500 500
3 102 Bob 400 400
4 102 Pete 200 200
5 101 Pete 850 350
6 102 Bob 650 250
在第一四行中,DIFF是一樣的量,因爲每個是每個用戶的第一個條目每工作(因此的差與計算的參考起始金額零有效)。
最後兩行包含一個用戶名和作業組合已經出現在該表之前的信息,因此DIFF計算如下:
Job 101 User Pete 850 - 500 = 350
Job 102 User Bob 650 - 400 = 250
我從來沒有來比較像行數據這在之前的SQL查詢中並不真正知道從哪裏開始。任何幫助將非常感激。
加入
請注意金額不是運行總額。這是定期對每個特定工作中的用戶輸入值進行的主觀評估。金額可能實際上從一次評估下降到下一次評估。我想要的是一個查詢,它返回連續評估「金額」之間的差異。
替代解釋
我正在尋找返回已評估金額的變動歷史記錄。所以另一個例子,在看一個單一的作業和用戶如下:
Job User Amount Movement
101 Bob 100 100
101 Bob 500 400
101 Bob 400 (100)
101 Bob 1,000 600
然而,按照最初的例子,將需要從包含大量的就業機會和用戶都混一個表中提取此信息。
什麼版本的SQL Server嗎? – gbn
此外,爲什麼ID = 5金額850但ID = 6金額650?對於ID 5,您已將以前的101,Pete對的金額相加。但對於ID 6,您有當前的金額。這是每對貨品的「第一價值」嗎?或每對「以前的價值」? – gbn
缺少日期/時間列,是否由_ID值的順序來定義_consecutive_? – HABO