2017-08-10 46 views
-2

我想写一个SQL查询来计算每个客户每天的运行总数。我想创建一个SQL查询来计算每个客户每天的运行总数

例如:

CustomerID TranDate TranAmount RunningTotal 
----------------------------------------------- 
C1    8/1/17 $10  $10 
C2    8/1/17 $15  $15 
C1    8/2/17 $20  $30 
C2    8/2/17 $30  $45 
C3    8/3/17 $50  $50 

我能够创建运行总计如果只有1表中的客户,但有困难的时候也有很多。

预先感谢您。

如果您需要更多信息,请让我知道。

+0

发布您已经完成的代码。 – kaineub

+0

是不是第4列RunningTotal的列记录? –

+0

SELECT干旱,ARTransactionID,ARTransactionAmount, (SELECT SUM(ARTransactionAmount) FROM #XXX T2 WHERE T2.ARTransactionID <= T1.ARTransactionID)AS通过ARTransactionID RunningTotal FROM T1 #XXX为了 是 –

回答

0

使用以下查询:

SELECT A.Customer,A.TranDate, 
SUM(B.TranAmount) AS RunningTotal FROM 
TableA AS A Inner Join TableA AS B 
ON A.CustomerID=B.CustomerID AND 
A.TranDate<=B.TranDate 
GROUP BY A.Customer,A.TranDate 

这将为工作表中相对少量的记录。对于大数据量,这需要进一步完善。

+0

谢谢。正如你所说,它正在为小数据量工作。表中有350万条记录。即使在等待20分钟后,该查询也不起作用。 –

+0

使用一批100/1000的批处理逻辑 –

相关问题