2014-06-16 53 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