select
    F1,
    TYPE0=sum(case TYPE when 0 then 1 else 0 end),
    TYPE1=sum(case TYPE when 1 then 1 else 0 end)
from
    表A
group by
    F1

解决方案 »

  1.   

    SELECT F1, SUM(CASE TYPE WHEN 0 THEN 1 ELSE 0 END) AS TYPE0,
    SUM(CASE TYPE WHEN 1 THEN 1 ELSE 0 END) AS TYPE1
    FROM A
    GROUP BY F1
      

  2.   

    declare @A table(F1 varchar(10),TYPE int)
    insert into @A select '001',1
    insert into @A select '001',1
    insert into @A select '001',0
    insert into @A select '002',0
    select
        F1,
        TYPE0=sum(case TYPE when 0 then 1 else 0 end),
        TYPE1=sum(case TYPE when 1 then 1 else 0 end)
    from
        @A
    group by
        F1/*
    F1         TYPE0       TYPE1       
    ---------- ----------- ----------- 
    001        1           2
    002        1           0
    */
      

  3.   

    declare @A table(F1 varchar(10),TYPE int)
    insert into @A select '001',1
    insert into @A select '001',1
    insert into @A select '001',0
    insert into @A select '002',0
    select
        F1,TYPE0=[0],TYPE1=[1]
    from @A
    pivot(
    COUNT(TYPE)
    FOR TYPE in([0],[1])
    ) F1/*--结果
    F1         TYPE0       TYPE1
    ---------- ----------- -----------
    001        1           2
    002        1           0(2 row(s) affected)
    --*/
      

  4.   

    多谢大家。
    另to:zjcxc(邹建)。pivot是什么意思,不是T-SQL语句的吧,那是哪种SQL语法?请教!
      

  5.   

    pivot是SQL Server 2005的语法。