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,Boysselect *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

解决方案 »

  1.   

    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 Boys
    from tb_masEmPersonalInfo b join tb_masEmployeeEmployer a  
    on b.EmpersonalInfoID=a.EmpersonalInfoID
    join tb_masCustomer c on a.CustomerID=c.CustomerID
    where  a.EwStatus in ('A','N')
    group by c.CustomerName,c.CustomerID
      

  2.   

    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.EmpersonalInfoID
    join tb_masCustomer c on a.CustomerID=c.CustomerID
    where a.EwStatus in ('A','N')
    group by c.CustomerName,c.CustomerID)
      

  3.   

    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.EmpersonalInfoID
    join tb_masCustomer c on a.CustomerID=c.CustomerID
    where  a.EwStatus in ('A','N')
    group by c.CustomerName,c.CustomerID