1 1 A 2006-6-21
2 2 B 2006-6-21
3 3 B 2006-6-21
4 4 B 2006-6-21
5 5 C 2006-6-22上面是表结构
我想按照日期group,分别得到类型A和类型B的数目比如上面数据显示结构为:2006-6-21  1    3
2006-6-21  0    0

解决方案 »

  1.   

    SELECT FLD4,SUM(CASE FLD3 WHEN 'A' THEN 1 ELSE 0 END),SUM(CASE FLD3 WHEN 'B' THEN 1 ELSE 0 END) 
    FROM TABLE GROUP BY FLD4
      

  2.   

    SELECT 
        SUM(f_A) AS f_A,
        SUM(f_B) AS f_B,
        f_3
    FROM 
    (
        SELECT 
            CASE f_2 
                WHEN 'A' THEN f_Count
                ELSE 0 
            END AS f_A,
            CASE f_2 
                WHEN 'B' THEN f_Count
                ELSE 0 
            END AS f_B ,
            f_3
        FROM 
        (   
            SELECT f_2,f_3 ,COUNT(*)AS f_Count FROM T_test GROUP BY f_2,f_3
        )
    )GROUP BY f_3