Sql Server stuff使用


  
----原始數據----
select ActivityName+':'+CONVERT(varchar(2), COUNT(*)) AS 退件次數 from FAERejectData WHERE FInstanceID = 'f9c2cc85-c05f-4545-8095-97861d0e2120' GROUP BY ActivityName
查詢結果如下
EQA會簽:1
分析評估:2
責任工程師確認:1
---期望數據-----
select STUFF((SELECT ';'+tmp.退件次數 FROM   
 
 (
 select ActivityName+':'+CONVERT(varchar(2), COUNT(*))  AS 退件次數 from FAERejectData

 WHERE FInstanceID = 'f9c2cc85-c05f-4545-8095-97861d0e2120'
 GROUP BY ActivityName)tmp where 1= 1 FOR XML PATH('')),1,1,'') 

查詢結果:EQA會簽:1;分析評估:2;責任工程師確認:1

二、

---原始數據---
 select ActivityName,r.RejectReason
 from FAERejectData R
 WHERE FInstanceID = 'f9c2cc85-c05f-4545-8095-97861d0e2120'

查詢結果如下:

EQA會簽 樣品NG
分析評估 資料NG
責任工程師確認 樣品NG
分析評估 NVT內部原因

 

 

------期望數據-------------------

  select ActivityName, items=stuff((select ','+RejectReason from (select distinct ActivityName,RejectReason from
FAERejectData WHERE FInstanceID = 'f9c2cc85-c05f-4545-8095-97861d0e2120') t where ActivityName=s.ActivityName for xml path('')), 1, 1, '') from (select distinct ActivityName,RejectReason from FAERejectData WHERE FInstanceID = 'f9c2cc85-c05f-4545-8095-97861d0e2120') s group by ActivityName
查詢數據如下,3行2列:

EQA會簽 樣品NG
分析評估 NVT內部原因,資料NG
責任工程師確認 樣品NG

----再次合並數據

select STUFF((SELECT ','+tmp.退件原因 FROM (

 
         

select ActivityName+':'+stuff((select ';'+RejectReason from (select distinct ActivityName,RejectReason from FAERejectData WHERE FInstanceID = 'f9c2cc85-c05f-4545-8095-97861d0e2120') t
where ActivityName=s.ActivityName for xml path('')), 1, 1, '') as 退件原因
from (select distinct ActivityName,RejectReason from FAERejectData WHERE FInstanceID = 'f9c2cc85-c05f-4545-8095-97861d0e2120') s
group by ActivityName)tmp where 1= 1 FOR XML PATH('')),1,1,'')

 

查詢結果:單行單列

EQA會簽:樣品NG,分析評估:NVT內部原因;資料NG,責任工程師確認:樣品NG

 

 


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM