应用筛选器对季度数据求和



我需要一些关于Quarterly数据求和的过滤器的帮助。 对于Yearly数据,我添加了公式。

对于Quarterly数据,我现在已硬编码,但需要让系统进行计算。

所以例如下个季度将是Quarter 3,我需要计算当前年度/当前季度的数字(该季度 3 个月的数字总和(

过滤器代码片段

其中 [状态] = "完成" AND (YEAR([日期字段]( = YEAR(GETDATE((( - 1  OR YEAR([日期字段]( = YEAR(GETDATE((( - 2  OR YEAR([日期字段]( = YEAR(GETDATE(((  和月份([日期字段](在(4,5,6((--四月/五月/六月。

很抱歉提供不完整的答案。我在回答后想到了这一点。

选择* 从表 其中 [状态] = "完成" 和 [DATEFIELD] 之间的转换(日期, 日期添加(M, -2, 日期添加(D, -DAY(日期添加(D, -1, GETDATE((((, GETDATE(((( 和 EOMONTH(DATEADD(D, -DAY(DATEADD(D, -1, GETDATE((((, GETDATE((

((解释:

为了使过滤器准确,您需要获取该月的第一天和最后一天。

第一天:

获取当前日期:

SELECT GETDATE()

2018-09-06 17:03:35.467

获取当前日期减 1

SELECT DATEADD(D, -1, GETDATE())

2018-09-05 17:03:35.467

将"当前日期减去 1"(上述结果(到当前日期。

SELECT DATEADD(D, -DAY(DATEADD(D, -1, GETDATE())), GETDATE())

2018-09-01 17:03:35.467

仅获取日期部分:

SELECT CONVERT(date, DATEADD(D, -DAY(DATEADD(D, -1, GETDATE())), GETDATE()))

2018年09月01

最后一天:

与获取第一天相同,但CONVERT更改为EOMONTH,因为后者已经仅将结果作为date部分返回

SELECT EOMONTH(DATEADD(D, -DAY(DATEADD(D, -1, GETDATE())), GETDATE()))

2018年09月30

所以你现在有

选择转换(日期, 日期添加(D, -DAY(日期添加(D, -1, GETDATE(((
(, GETDATE(((( ,EOMONTH
(DATEADD(D, -DAY(DATEADD(D, -1, GETDATE((((, GETDATE(((

(2018-09-01

2018年09月30

从当月获取前 2 个月。

选择 CONVERT(DATE, DATEADD(M, -2, DATEADD(D, -DAY(DATEADD(D, -1, GETDATE(((
(, GETDATE((((请注意,

我刚刚将DATEADD(M, -2, )添加到">第一天"值。

将 2 个月前的第一天和您获得的当月的最后一结合起来

选择 CONVERT(DATE, DATEADD(M, -2, DATEADD(D,
-DAY(DATEADD(D, -1, GETDATE((((, GETDATE(((( ,EOMONTH
(DATEADD(D, -DAY(DATEADD(D, -1, GETDATE((((, GETDATE(((

(2018-07-01

2018年09月30

最新更新