c# - 统计 SQL 调用数据表的总成本

标签 c# sql asp.net datatable

我正在使用 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/

相关文章:

ASP.NET MVC3 : Publishing is excluding my CSS (. 少)文件

javascript - 如何获取asp :Button with JavaScript的值

c# - 使用 CancellationToken 的异步/等待不会取消操作

c# - 使用 STDOUT 打印语句将控制台附加到 C# Windows 应用程序

c# - UWF_Volumes 没有 CurrentSession=False 的条目

mysql - sql 显示基于计算列的分区与 mysql

php - 内爆 2 个独立的阵列?

c# - 如何从 C# 代码调用在 WPF Image 中绘制的 native 代码?

mysql - SQL多次返回相同的结果

c# - 可以在没有数据库表的情况下生成序列号吗?