关于多数据表查询,子查询,然后对结果进行分组
我的T_Award数据表的内容是这个样子
我使用了这样的SQL函数使数据这样分组的显示出来了
select typename, awardname = stuff((select ',' + awardname from T_Award t where typename = T_Award.typename for xml path('')) , 1 , 1 , '')from T_Awardgroup by typename
select a.personName,d.awardName ,c.activityName,d.typeName from T_Person a join T_PersonAwardR b on a.id=b.personId join T_Activity c on b.activityId=c.id join T_Award d on d.id=b.awardId where c.activityName='万人长跑大赛' and d.typeName='优秀主持人奖';
;with cte as( select a.personName,d.awardName ,c.activityName,d.typeName from T_Person a join T_PersonAwardR b on a.id=b.personId join T_Activity c on b.activityId=c.id join T_Award d on d.id=b.awardId where c.activityName='万人长跑大赛' and d.typeName='优秀主持人奖';)select distinct awardName, 获奖人员名单=stuff((select ','+personName from cte where t.awardName=awardName for xml path('')),1,1,'') from cte t