回答

收藏

显示日期在哪个财政年度,哪个季度?

技术问答 技术问答 295 人阅读 | 0 人回复 | 2023-09-14

我试图构建一个查询,它将映射两列,一列是表中的日期,第二列是别名,以显示日期的季度和财务年度。4 e! Y1 O; m( Y8 V6 Y
不幸的是,我还不够SQL知识知道从哪里开始。我知道我会用组合来做到这一点getdate(),并dateadd(MONTH,,)但不,我已经接近工作了。
) M, [3 h% W* y2 {更复杂的是,澳大利亚的财政年度从7月1日至6月30日开始,因此2012年第一季度将从2012年7月1日开始。) C2 a3 r* H7 C9 b% p5 b
我可以在没有声明的情况下做到这一点,但我宁愿在声明中使用它,因为它将在声明中使用SSRS报告和C#在应用程序中使用会使维护非常容易。
1 X6 H% [+ F+ ]$ M3 x' }                                                                # d: i- G2 P$ f3 n) s0 z, h
    解决方案:                                                                4 y3 z9 g  i) }6 {/ A$ K
                                                                该工作:% b$ n3 `1 s; I6 M& {. q9 M
SELECT    MyDate,   CASE        WHEN MONTH(MyDate) BETWEEN 1  AND 3  THEN convert(char(4),YEAR(MyDate) - 1)  Q      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) - Q     WHEN MONTH(MyDate) BETWEEN 10 AND 12 THEN convert(char(4),YEAR(MyDate) - Q2'    END AS QuarterFROM    MyTable输出:-
4 M0 G+ b$ I# Y8 a6 a* i% ]& v  jMyDate        Quarter----------    --------2011-01-01    "2010Q3"2011-04-01    "2010Q4"2011-07-01    "2011Q1"2011-10-01    "2011Q2"
分享到:
您需要登录后才可以回帖 登录 | 立即注册

本版积分规则