家庭表familyInfo
id,regionCode
1,1000人员表familyPerson
id,familyInfoId,sex
1,1,0
2,1,1一对多关系,familyInfoId关联。要统计某一区域内的
区域,家庭数,男人数,女人数
1000,1,1,1用外联的话会出来两条,我只要一条记录,语句该怎么写啊?
谢谢!!!

解决方案 »

  1.   

    select distinct ......
    在检索之前使用关键字distinct,这样就可以只检索出一条数据。
      

  2.   

    create table familyInfo(id int,regionCode int)
    insert into familyInfo values(1,1000)
    go
    create table familyPerson(id int,familyInfoId int,sex int)
    insert into familyPerson values(1,1,0)
    insert into familyPerson values(2,1,1)
    goselect a.regionCode 区域,b.男人数 , b.女人数 from familyInfo a,
    (
      select familyInfoId,
        sum(case when sex = 0 then 1 else 0 end) '男人数',
        sum(case when sex = 1 then 1 else 0 end) '女人数'
      from familyPerson
      group by familyInfoId
    ) b
    where a.id = b.familyInfoId
    drop table familyInfo,familyPerson/*
    区域          男人数         女人数         
    ----------- ----------- ----------- 
    1000        1           1(所影响的行数为 1 行)
    */