1
我正試圖計算下表中的合同修正值。在DB2中查找和求和合約SQL
時,有一個修訂的合同值與從合同的最後一個版本+在修改增加值餘數更新。 爲了說明我添加了如何在最後一列計算的信息。
我該如何解決DB2中的SQL問題,我在這裏打了一堵牆。 謝謝
我正試圖計算下表中的合同修正值。在DB2中查找和求和合約SQL
時,有一個修訂的合同值與從合同的最後一個版本+在修改增加值餘數更新。 爲了說明我添加了如何在最後一列計算的信息。
我該如何解決DB2中的SQL問題,我在這裏打了一堵牆。 謝謝
考慮使用自己加入每個計算運行號合同與ROW_NUMBER()
。具體而言,將LEFT JOIN
過濾爲第一個FROM
表後面的一個行號。從那裏列將用於AmendmentValue計算對齊:除了單元格引用的
SELECT sub1.Contract, sub1.Amendment, sub1.Value, sub1.Billed, sub1.Reminder,
(CASE WHEN sub1.Amendment IS NULL THEN NULL
ELSE sub1.Billed - sub2.Remainder END) As AmendmentValue
FROM
(SELECT t.Contract, t.Amendment, t.Value, t.Billed, t.Remainder,
ROW_NUMBER() OVER (PARTITION BY t.Contract
ORDER BY CASE WHEN t.Amendment IS NULL THEN 1 ELSE t.Amendment END) rn
FROM TableName t) sub1
LEFT JOIN
(SELECT t.Contract, t.Amendment, t.Value, t.Billed, t.Remainder,
ROW_NUMBER() OVER (PARTITION BY t.Contract
ORDER BY CASE WHEN t.Amendment IS NULL THEN 1 ELSE t.Amendment END) rn
FROM TableName t) sub2
ON sub1.Contract = sub2.Contract AND sub1.rn = sub2.rn + 1
未知的細胞,你應該把那些在計算中的實際值。 –
也發佈了有問題的DB2版本和平臺。 – mustaccio
抱歉,這是DB2 9.7,我們使用datastage來運行作業 – user7326074