具有特定范围的组日期范围

时间:2014-06-22 13:05:57

标签: sql sql-server tsql

我知道日期范围内有很多分组。我看过互联网。但我看到的那个是硬接线范围。说,

CASE
   WHEN [Date] BETWEEN '2014-1-1' AND '2014-3-30' THEN 1
   WHEN [Date] BETWEEN '2014-4-1' AND '2014-6-30' THEN 2
   -- And so on
END

仅涵盖2014年,对吧?但是,如果我还需要在接下来的4年左右的时间内完成这项工作。我真的需要manually将它放入查询中吗?或者它是否有办法覆盖未来几年?

具体来说,我需要按范围对记录进行分组。 AugJan(第1组)和FebJuly(第2组)

非常感谢任何帮助。谢谢!

2 个答案:

答案 0 :(得分:3)

使用MONTH()

CASE
  WHEN month([Date]) BETWEEN 2 AND 7 THEN 2
  ELSE 1
END

答案 1 :(得分:2)

group by 
         case when Month(DateCol) IN (8, 9, 10, 11, 12, 1) then 1 
              else 2 
         end

参考:Month()

相关问题