2015-10-06 60 views
-1

我需要顯示隨着時間的推移貢獻的總和;但是我想用這種格式來演示它。如何在SQL上使用同一行數據進行添加?

Date Pay Total 
8.1 100 100 
8.8 150 250 
8.15 50 300 

所以我只有兩組數據,日期和支付金額。 我想根據付款金額顯示付款總額的變化。

我想我需要使用子查詢,但我無法讓它爲我工作! 有什麼建議嗎?

+1

請,添加數據樣本,你嘗試過這麼遠。 – Horaciux

回答

0

所以這是ANSI SQL使用窗函數

select date, 
     pay, 
     sum(pay) over (order by date) as total 
from the_table 
order by date; 

這在上線呈30你沒有指定一個DBMS只是一個錯字和實際上應該是300

0

這些都是便攜的方式來做到這一點。我假設你的日期是獨一無二的。

內連接:

select t1."Date", min(t1.Pay) as Pay, sum(t1.Pay) as CumulativeTotal 
from T t1 inner join T t2 on t2."Date" <= t1."Date" 
group by t1."Date" 
order by t1."Date" 

標量子查詢:

select 
    t1."Date", t1.Pay, 
    (select sum(Total) from T t2 where t2."Date" <= t1."Date") as CumulativeTotal 
from T t1 
order by t1."Date" 
+0

偉大的作品,但我如何指定一個特定的客戶端ID? – OVO

+0

忘記提及內連接。謝謝! – OVO

+0

聽起來像添加'和t2.Client = t1.Client'。只是一個猜測。它也適用於兩種查詢。 – shawnt00

相關問題