如何添加另一个列,每季度(1月 - 3月,4月 - 6月,6月 - 9月)对其进行分区,然后添加另一个计数器以跟踪季度并定义2011年第1季度与2012年第1季度不同基本上我将如何添加Quarters和Tracker Column。我查看了ROW_NUMBER(),NTILE函数,但不确定如何将它们与月份结合起来。
--- Period --- Quarters---Tracker
2012-05-06 2 1
2012-05-20 2 1
2012-06-03 2 1
2012-07-01 3 2
2012-08-12 3 2
2012-08-26 3 2
2012-09-09 3 2
2012-10-07 4 3
2012-10-21 4 3
2012-11-04 4 3
2012-11-18 4 3
2012-12-02 4 3
2012-12-16 4 3
2012-12-30 4 3
2013-01-13 1 4
2013-01-27 1 4
真的很难!
答案 0 :(得分:2)
我将季度CASE
逻辑放在表格定义中,但您也可以将其放入查询中,这样您就不必修改表格了。
Create Table Blah
(
SampleDate Date Default(Convert(Date,Getdate())),
Quarters As ( Case
When Month(SampleDate) Between 1 And 3 Then 1
When Month(SampleDate) Between 4 And 6 Then 2
When Month(SampleDate) Between 7 And 9 Then 3
Else 4 End)
)
Insert Blah (SampleDate)
Select '2012-05-06'
Union All
Select '2012-05-20'
Union All
Select '2012-06-03'
Union All
Select '2012-07-01'
Union All
Select '2012-08-12'
Union All
Select '2012-09-09'
Union All
Select '2012-10-07'
Union All
Select '2012-11-04'
Union All
Select '2012-12-16'
Union All
Select '2013-01-13'
Union All
Select '2013-01-27'
Select *,
Dense_Rank() Over (Order By Year(SampleDate),Quarters) As Tracker
From Blah
答案 1 :(得分:0)
所以你想要一个简单的专栏代表你的实际季度? 您希望使用SQL分区的2012-Q1,2011-Q1,2010-Q1?或者你想要2列?一个要分区,另一个实际表示年份?
想一想,你需要一个柜台吗?难道你不能把另一列设置为年份吗?
所以你会有2列。一个表示季度,另一个表示年度
quarter year
1 2011
1 2012
1 2010