1. 程式人生 > >SQL多行並一行統計例子之STUFF()函數+FOR XML PATH()函數應用

SQL多行並一行統計例子之STUFF()函數+FOR XML PATH()函數應用

color varchar char lec .project 應用 src http class

SELECT * FROM tbiz_ProjectRelation

技術分享圖片

目標統計每個項目有幾條申請記錄

Step1

SELECT  ProjectID ,
        RelationIDs = STUFF(( SELECT , + CONVERT(VARCHAR,[RelationID]) FROM  tbiz_ProjectRelation t WHERE ProjectID = t1.ProjectID FOR XML PATH(‘‘)), 1, 1, ‘‘)
FROM tbiz_ProjectRelation t1

Step2

SELECT  ProjectID ,
        RelationIDs 
= STUFF(( SELECT , + CONVERT(VARCHAR,[RelationID]) FROM tbiz_ProjectRelation t WHERE ProjectID = t1.ProjectID FOR XML PATH(‘‘)), 1, 1, ‘‘) FROM tbiz_ProjectRelation t1 GROUP BY ProjectID

Step3

SELECT  ProjectID ,
        RelationIDs = STUFF(( SELECT , + CONVERT(VARCHAR,[RelationID]) FROM
tbiz_ProjectRelation t WHERE ProjectID = t1.ProjectID FOR XML PATH(‘‘)), 1, 1, ‘‘), COUNT([RelationID]) AS [COUNT] FROM tbiz_ProjectRelation t1 GROUP BY ProjectID

技術分享圖片

SQL多行並一行統計例子之STUFF()函數+FOR XML PATH()函數應用