日期:2014-05-18  浏览次数:20457 次

求一关联查询的SQL语句
家庭表familyInfo
id,regionCode
1,1000

人员表familyPerson
id,familyInfoId,sex
1,1,0
2,1,1

一对多关系,familyInfoId关联。

要统计某一区域内的
区域,家庭数,男人数,女人数
1000,1,1,1

用外联的话会出来两条,我只要一条记录,语句该怎么写啊?
谢谢!!!


------解决方案--------------------
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)
go

select 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 行)
*/