2014-06-16 49 views
0

總結列在XLS我有兩列A和B.mysql如何與以前的列總和

A,B 

1,1 
2,3 
2,5 
1,6 
5,11 
2,13 

列具有值,而B柱用公式計算,(A +(前一行B值))

我如何在MYSQL上做這個計算?

我試圖加入同一個表兩次,我可以得到以前行A柱旁邊B.

我可以總結他們,但我怎麼能與這個公式總結呢?

XLS公式如下:

H20 = H19+G20 

這是我從SQL創建的建議。

SELECT 
    date, time, sum, @b := [email protected] as 'AccSum', count 
FROM 
    (SELECT 
     t.date, t.time, t.sum, t.count 
    FROM TMP_DATA_CALC t 
    ORDER BY t.epoch) as tb 
CROSS JOIN 
    (SELECT @b := 0) AS var 
; 
+0

請張貼MySQL查詢您所使用的得到的輸出。如果你有一個特定的'ORDER BY'可以可靠地返回相同的排序,那麼可以通過一個針對子查詢的連接來完成。否則,SQL結果行與它們之前或之後的行沒有任何知識或關係。每一行本身就是一個實體,雖然你可能已經應用了一種。所以一個動態電子表格與SQL並不是很好的關聯。 –

回答

1
SELECT A, @b := [email protected] AS B 
FROM (SELECT A 
     FROM YourTable 
     ORDER BY id) AS t 
CROSS JOIN 
    (SELECT @b := 0) AS var 

用戶變量@b持有B從以前行的值,允許您添加當前行的A它。

DEMO

0

http://sqlfiddle.com/#!2/74488/2/1顯示瞭如何選擇數據。

SET @runtot:=0; 
Select a,b, @runtot:[email protected]+a from b 

但是有一個潛在的問題,我找不出來。由於您沒有定義的順序,因此SQL可以以任何方式執行此排序,因此您可能無法獲得理想的結果。如果沒有定義的順序,結果可能無法預測。

runtot =運行總數。

0

在MySQL中,我們沒有像Oracle那樣具有任何分區功能。您可以使用光標來實現您的要求。或者我們可以編寫任何將得到rownumber作爲輸入的函數,然後添加這兩個值然後返回查詢。

從XSL限制ROWNUM-1,1 +選擇b。從XSL限制ROWNUM選擇,1