试试这样行不行:select 县,乡,村,社 ,
户数=count(*),
a类型人口总数=sum(case 所属类型 when 'a' then 家庭人口 else 0),
b类型人口总数=sum(case 所属类型 when 'b' then 家庭人口 else 0),
c类型人口总数=sum(case 所属类型 when 'c' then 家庭人口 else 0)
from 表
where group by 县,乡,村,社

解决方案 »

  1.   

    接chiwei(水手) 的语句select 县,乡,村,社 ,
    户数=count(*),
    a类型人口总数=sum(case 所属类型 when 'a' then 家庭人口 else 0 end),
    b类型人口总数=sum(case 所属类型 when 'b' then 家庭人口 else 0 end),
    c类型人口总数=sum(case 所属类型 when 'c' then 家庭人口 else 0 end)
    from 表
    where group by 县,乡,村,社
      

  2.   

    chiwei(水手)真强,居然用的全角逗号,还用了where,再改改
    select 县,乡,村,社,
    [户数]=count(*),
    [a类型人口总数]=sum(case 所属类型 when 'a' then 家庭人口 else 0 end),
    [b类型人口总数]=sum(case 所属类型 when 'b' then 家庭人口 else 0 end),
    [c类型人口总数]=sum(case 所属类型 when 'c' then 家庭人口 else 0 end)
    from 表
    group by 县,乡,村,社
      

  3.   

    :)不好意思阿,我没有在查询分析器里面写所以逗号的问题没太注意,条件那边本来是想写where条件的,后来又改成了Group By 了,呵呵可能太晚了眼有点花了,没来得及改回来。
      

  4.   

    为什么,我在设计视图里面写入上面的语句,执行时提示“查询设计器不支持 CASE SQL 构造。”请问!!为什么?
      

  5.   

    CREATE VIEW dbo.V_view_11
    AS
    select 县,乡,村,社,
    [户数]=count(*),
    [a类型人口总数]=sum(case 所属类型 when 'a' then 家庭人口 else 0 end),
    [b类型人口总数]=sum(case 所属类型 when 'b' then 家庭人口 else 0 end),
    [c类型人口总数]=sum(case 所属类型 when 'c' then 家庭人口 else 0 end)
    from 表
    group by 县,乡,村,社