我正在尝试构建一个查询,该查询将映射两列,一列是表中的日期,第二列是别名以显示该日期属于哪个季度和财政年度。
不幸的是,我没有足够的 SQL 知识,不知道从哪里开始。我知道我会结合 getdate()
和 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
输出:-
MyDate Quarter
---------- --------
2011-01-01 "2010Q3"
2011-04-01 "2010Q4"
2011-07-01 "2011Q1"
2011-10-01 "2011Q2"
关于sql - 显示日期处于财政年度的哪个季度,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/8738818/