我正在尝试构建一个查询,该查询将映射两列,一列是表中的日期,第二列是别名,以显示该日期属于哪个季度和财政年度。
不幸的是,我没有足够的 SQL 知识,不知道从哪里开始。我知道我会结合使用以下方法来做到这一点getdate()
and dateadd(MONTH,,)
然而,我所做的一切都还没有达到预期的效果。
更复杂的是,澳大利亚的财政年度为 7 月 1 日至 6 月 30 日,因此 2012 财政年度的第一季度将从 2012 年 7 月 1 日开始。
我可以在没有声明的情况下执行此操作,但我更愿意将其放在声明中,因为它将在 SSRS 报告和 C# 应用程序中使用,并且它将使维护变得更加容易。
这应该有效:-
SELECT
MyDate,
CASE
WHEN MONTH(MyDate) BETWEEN 1 AND 3 THEN convert(char(4), YEAR(MyDate) - 1) + 'Q3'
WHEN MONTH(MyDate) BETWEEN 4 AND 6 THEN convert(char(4), YEAR(MyDate) - 1) + 'Q4'
WHEN MONTH(MyDate) BETWEEN 7 AND 9 THEN convert(char(4), YEAR(MyDate) - 0) + 'Q1'
WHEN MONTH(MyDate) BETWEEN 10 AND 12 THEN convert(char(4), YEAR(MyDate) - 0) + 'Q2'
END AS Quarter
FROM
MyTable
Output:-
MyDate Quarter
---------- --------
2011-01-01 "2010Q3"
2011-04-01 "2010Q4"
2011-07-01 "2011Q1"
2011-10-01 "2011Q2"
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)