2017-04-08 44 views
-1

我有三列:有沒有辦法減去先前行數據的當前行並將其保存到當前行

monthly fee remaining 

第一行 - 條件:

subtract fee(row 0) from monthly(row 0) and stored in remaining(row 0) 

第二行起始條件:

subtract fee(this row) from remaining(previous row) and stored in remaining(this row) 

我應該使用什麼查詢來執行此操作?我需要這方面的幫助。

+0

請清楚你的問題並給它一個例子。讓其他人更容易幫助你。 – Brain90

+1

你真的想要解決什麼問題?你爲什麼需要這樣做?這可能不是解決您的問題的最佳解決方案。 – Niagaradad

+0

您如何識別行的**訂單**?是否有ID列或日期列? (所有這些看起來都像Excel一樣可疑......) –

回答

0

在這兩列上取兩個獨立的子查詢,並在兩個子查詢中都帶有必需的信息,並以任何可能的方式在該字段上給出行號(爲此要執行此操作)。現在,在rownumber和rownumber + 1的其他子查詢上加入這兩個子查詢,現在,您將在rownumber字段和rownumber + 1字段旁邊選擇兩列。將其他選擇中的差異作爲其他字段。

希望你明白。請充分注意並按照您所在的具體專欄進行排序。

+0

你如何在MySql中實現'rownumber'? –

+0

對我來說有點困難。但生病嘗試讓你知道,你可以用例子來闡述你的答案。 –

+0

我們可以通過設置來實現rownumber。變量像(選擇@rownumber:= 0)作爲t然後我們可以交叉連接它與主表 – Rams

0

如果你只是打算做一個select語句的代碼實際上看起來像

select @recordnumber:[email protected]+1 as recordnumber, 
@curremaining:=if(@curremaining=0,Monthly,@remaining) prevremaining, 
Monthly, Fee, @remaining:[email protected] as remaining 
from Payments,(select @remaining:=0,@curremaining:=0,@recordnumber:=0) x; 

您可能需要在通過查詢在這種情況下,記錄時的順序正好通過添加順序sql語句的結尾。即

from Payments,(select @remaining:=0,@curremaining:=0,@recordnumber:=0) x 
order by fieldtoorder; 
+0

我不想從數據庫檢索數據。我在表單級別做這件事,所以只需要將數據從前一行的item1複製到當前行的item2。 –

相關問題