本帖最后由 pctonc 于 2012-12-19 16:21:45 编辑

解决方案 »

  1.   

    SELECT  CASE WHEN MONTH(create_time) BETWEEN 1 AND 3 THEN '1季度'
                 WHEN MONTH(create_time) BETWEEN 4 AND 6 THEN '2季度'
                 WHEN MONTH(create_time) BETWEEN 7 AND 9 THEN '3季度'
                 WHEN MONTH(create_time) BETWEEN 10 AND 12 THEN '4季度'
            END AS 季度 ,
            CASE CATALOG
              WHEN 1 THEN 'A人数'
              WHEN 2 THEN 'B人数'
              WHEN 3 THEN 'C人数'
              WHEN 4 THEN 'D人数'
              WHEN 5 THEN 'E人数'
            END AS '类别' ,
            COUNT(1) AS '人数'
    FROM    [userTable] A
    GROUP BY CASE WHEN MONTH(create_time) BETWEEN 1 AND 3 THEN '1季度'
                  WHEN MONTH(create_time) BETWEEN 4 AND 6 THEN '2季度'
                  WHEN MONTH(create_time) BETWEEN 7 AND 9 THEN '3季度'
                  WHEN MONTH(create_time) BETWEEN 10 AND 12 THEN '4季度'
             END ,
            CATALOG
    ORDER BY CASE WHEN MONTH(create_time) BETWEEN 1 AND 3 THEN '1季度'
                  WHEN MONTH(create_time) BETWEEN 4 AND 6 THEN '2季度'
                  WHEN MONTH(create_time) BETWEEN 7 AND 9 THEN '3季度'
                  WHEN MONTH(create_time) BETWEEN 10 AND 12 THEN '4季度'
             END ,
            CATALOG
    /*
    1季度 A人数 1
    1季度 B人数 2
    1季度 C人数 2
    1季度 D人数 1
    2季度 A人数 1
    2季度 B人数 1
    2季度 C人数 1
    2季度 D人数 1
    3季度 A人数 1
    3季度 B人数 2
    3季度 C人数 1
    3季度 D人数 1
    3季度 E人数 2
    4季度 C人数 1
    4季度 D人数 1
    4季度 E人数 1*/
      

  2.   

    ths, OrchidCat  还有其他写法没
      

  3.   

    要想获取某一年季度,可以使用DATEPART()函数
    select DATEPART(QQ,getdate()) 
      

  4.   

    能结合我的 写完整的sql吗