一個SQL語句

sql语句查询

表结构是这样:
ID   姓名    性别
1    张三     男
2    王四     男
3    丽丽     女
4    张三     男
5    赵柳     男
6    高洁     男
7    王四     女
8    高洁     女
9    张三     女
 
怎么能用一条SQL语句查询出如下的结果

姓名   人员个数    男人数    女人数    包含ID
张三      3          2         1       1,4,9
王四      2          1         1       2,7
丽丽      1          0         1       3
高洁      2          1         1       6,8
赵柳      1          1         0       5  

  

SELECT * FROM (SELECT DISTINCT Name,Count(ID) as 人員個數,

sum(case when Sex='男' then 1 else 0 end) as 男人數, 

sum(case when Sex='女' then 1 else 0 end) as 女人數 

FROM Test group by Name) A

OUTER APPLY(

    SELECT 

        [包含ID]= STUFF(REPLACE(REPLACE(

            (

                SELECT ID FROM Test N

                WHERE Name = A.Name

                FOR XML AUTO

            ), '<N ID="', ','), '"/>', ''), 1, 1, '')

)N 

 

 

 


 


posted @ 2010-01-23 18:11  TomiWong  阅读(295)  评论(0编辑  收藏  举报