我正在使用 sql 调用创建数据表:
SqlDataAdapter Adp = new SqlDataAdapter("select CONVERT(DATETIME, IncDate, 103) AS IncDate, SUM(IncCost) AS IncCost from Incomings GROUP BY CONVERT(DATETIME, IncDate, 103) ORDER BY CONVERT(DATETIME, IncDate, 103)", con);
此时输出
03/04/2016 - 13
05/04/2016 - 26
08/04/2016 - 5
13/04/2016 - 16
23/04/2016 - 23
我想知道如何更改我的 SQL 查询,以便将每个成本添加到前一个成本中,即运行总计。这看起来像
03/04/2016 - 13
05/04/2016 - 39
08/04/2016 - 44
13/04/2016 - 60
23/04/2016 - 83
到目前为止仍然没有有效的解决方案,也不知道如何去做。提前致谢!
最佳答案
您可以尝试此操作并根据需要进行调整。如果您在 SSMS 中执行此操作,则可以更轻松地了解发生的情况。
SELECT MyTable.IncDate AS IncDate, SUM(MyTable.IncCost) OVER (ORDER BY MyTable.IncDate) AS IncCost FROM
(
SELECT
CONVERT(DATETIME, IncDate, 103) AS IncDate,
SUM(IncCost) AS IncCost
FROM
Incomings
GROUP BY CONVERT(DATETIME, IncDate, 103)
) AS MyTable
ORDER BY MyTable.IncDate
解释:内部 SELECT 语句允许我们进行分组并进行所有设置,以便数据采用我们想要的格式。然后我们像表格一样使用内部选择来进行 SUM 和 OVER 操作,从而获得运行总计。
关于c# - 统计 SQL 调用数据表的总成本,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/35880103/