2014-06-22 4 views
1

Je sais qu'il y a beaucoup de regroupement dans la plage de dates. J'ai regardé sur internet. Mais celui que j'ai vu était une gamme câblée. Dites,plage de dates de groupe avec plage spécifique

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 

qui ne couvre que l'année 2014, non? Mais que faire si j'ai besoin de couvrir aussi pour les 4 prochaines années. Ai-je vraiment besoin de le mettre dans la requête? manually Ou y a-t-il un moyen de le couvrir pour les prochaines années?

En particulier, je dois regrouper les enregistrements par plage. Aug-Jan (groupe 1) et Feb-July (groupe 2)

Toute aide serait grandement apprécié. Merci!

Répondre

3

Utilisez MONTH()

CASE 
    WHEN month([Date]) BETWEEN 2 AND 7 THEN 2 
    ELSE 1 
END 
2
group by 
     case when Month(DateCol) IN (8, 9, 10, 11, 12, 1) then 1 
       else 2 
     end 

Ref: Month()