看你的样本数据,我不完全知道什么是对分组计数根据最新记录的条件。
这个充满工作示例,展示如何在聚合函数添加filter
标准:
DECLARE @DataSource TABLE
(
[Record] TINYINT
,[applicant_count] TINYINT
,[applicant_date] DATETIME2
,[accepted_count] TINYINT
,[accepted_date] DATETIME2
,[registered_count] TINYINT
,[registered_date] DATETIME2
)
INSERT INTO @DataSource ([Record], [applicant_count], [applicant_date], [accepted_count], [accepted_date], [registered_count], [registered_date])
VALUES (1, 11, '03/01/2014', NULL, NULL, NULL, NULL)
,(2, 12, '02/01/2014', 12, '03/01/2014', 11, '05/05/2014')
,(3, 13, '04/05/2014', 13, '05/01/2014', 10, '05/01/2014')
,(4, 14, '02/01/2014', 11, '04/05/2014', NULL, NULL)
,(5, 15, '04/05/2014', NULL, NULL, NULL, NULL)
DECLARE @Date DATETIME2 = '4/20/2014'
SELECT SUM(IIF([applicant_date] = '4/05/2014', [applicant_count], 0)) AS [applicant_date]
,SUM(IIF([applicant_date] = '4/05/2014', [accepted_count], 0)) AS [accepted_count]
,SUM(IIF([applicant_date] = '4/05/2014', [registered_count], 0)) AS [registered_count]
FROM @DataSource
注重在SUM
的条件:,
IIF([applicant_date] = '4/05/2014', [applicant_count], 0)
这意味着,如果日期等于我们正在总结的结果,如果没有,加入0
。你可以随意改变状态,只要你喜欢。
希望得到这个帮助。
你想让计数成为前几天的总计,还是只对那一天的活动感兴趣? –
我正在寻找基于给定日期的前几天所有日期的总计。我根据日期总结了部分记录的复杂性。例如,2014年4月的某个日期生成的任何查询都不应显示任何已注册的计数,因为这些事件发生在2014年5月。 – user3613294