【发布时间】:2017-07-30 16:27:06
【问题描述】:
我有这张表 DDL:
CREATE TABLE [dbo].[Audit] (
[AuditId] INT IDENTITY (1, 1) NOT NULL,
[Entity] INT NOT NULL,
[Action] INT NOT NULL,
[Id] UNIQUEIDENTIFIER NULL,
CONSTRAINT [PK_Audit] PRIMARY KEY CLUSTERED ([AuditId] ASC)
);
更新 - 我在这里添加了缺失的 SQL。对此感到抱歉
我所做的是使用此 SQL 创建一个 SQL 报告,该报告将显示每天有多少活动:
select [col1] = CONVERT(VARCHAR(10), DATEADD(HOUR, 8, a.date), 101) ,
[Col2] = convert(varchar, count(*))
from Audit a
group by CONVERT(VARCHAR(10), DATEADD(HOUR, 8, a.date), 101)
order by CONVERT(VARCHAR(10), DATEADD(HOUR, 8, a.date), 101) desc
输出如下:
col1 Col2
03/05/2017 1
03/04/2017 20
03/03/2017 10
03/02/2017 5
03/01/2017 10
我现在需要做的是创建一个 SQL 选择,它向我显示累积值而不是计数。所以我需要 SQL 来创建一个报告来显示这个
col1 Col2
03/05/2017 46
03/04/2017 45
03/03/2017 25
03/02/2017 15
03/01/2017 10
有人知道如何修改我的 SQL 来创建这种类型的报告吗?
请注意,我真的在寻找一个命令解决方案,因为它是从 .net 框架执行的,如果解决方案中有多个命令,我想我需要弄清楚如何以某种方式将其放入存储过程中。
【问题讨论】:
-
输出来自选择 * 或??您是如何从第一行开始的累积总和中得到 46 的?
-
这是一个运行总计。解决方案取决于您使用的 sql server 版本。这个网站上有几十个运行总计的例子。
-
您好@Anne,我们很乐意帮助您修改 SQL 以获得正确的结果。很遗憾,您尚未提供 SQL 代码,因此我们不知道建议进行哪些修改。
-
@EdwardRusu 很抱歉没有包含用于创建报告的 SQL。我现在添加它。
-
想知道为什么我的问题有 -2 票。有人有什么想法吗?
标签: sql sql-server