SQL查询结果连接的问题!!!!!
select * from
(select CustomerName,c.CustomerID,count(*) as Boys
from tb_masEmPersonalInfo b join tb_masEmployeeEmployer a
on b.EmpersonalInfoID=a.EmpersonalInfoID
join tb_masCustomer c on a.CustomerID=c.CustomerID
where b.GenderID=1 and a.EwStatus in ('A','N')
group by c.CustomerName,c.CustomerID) Boys
查询结果的列为 CustomerName,CustomerID,Boys
select *from
(select CustomerName,c.CustomerID,count(*) as Girls
from tb_masEmPersonalInfo b join tb_masEmployeeEmployer a
on b.EmPersonalInfoID=a.EmPersonalInfoID
join tb_masCustomer c on a.CustomerID=c.CustomerID
where b.GenderID=2 and a.EwStatus in ('A','N')
group by CustomerName,c.CustomerID) Girls
查询结果的列为 CustomerName,CustomerID,Girls
这两个查询结果连接在一张表里.需要实现的结果为
查询结果的列为 CustomerName,CustomerID,Boys,Girls
[解决办法]
- SQL code
select CustomerName,c.CustomerID,Sum(case when b.GenderID=1 then 1 else 0 end) as Boys,Sum(case when b.GenderID=2 then 1 else 0 end) as Boysfrom tb_masEmPersonalInfo b join tb_masEmployeeEmployer a on b.EmpersonalInfoID=a.EmpersonalInfoIDjoin tb_masCustomer c on a.CustomerID=c.CustomerIDwhere a.EwStatus in ('A','N')group by c.CustomerName,c.CustomerID
[解决办法]
- SQL code
select * from(select CustomerName,c.CustomerID,sum(case when b.GenderID=1 then 1 else 0 end ) as Boys,sum(case when b.GenderID=2 then 1 else 0 end ) as Girls,from tb_masEmPersonalInfo b join tb_masEmployeeEmployer a on b.EmpersonalInfoID=a.EmpersonalInfoIDjoin tb_masCustomer c on a.CustomerID=c.CustomerIDwhere a.EwStatus in ('A','N')group by c.CustomerName,c.CustomerID)