2013-05-18 44 views
1

我有一個表(tblproduct)帶有字段:dept,product,qty。下面 樣本數據:在SQL Server 2008中連接行組記錄的基礎

dept product qty 
IT A 2 
IT B 1 
PU C 4 
SAL D 1 
SER D 2 
SER A 4 

我想創建SQL Server存儲親與下面的結果:

product qty remark 
A 6 IT=2,SER=4 
B 1 IT=1 
C 4 PU=4 
D 3 SAL=1,SER=2 

這是我親存儲

select product, 
     sum(qty) 
from tblproduct 
group by product 
order by product 

PLS。任何幫助。謝謝。

回答

2
SELECT 
    [product], SUM(qty) Total_Qty, 
    STUFF(
     (SELECT ',' + dept + '=' + CAST(qty AS VARCHAR(10)) 
      FROM TableName 
      WHERE [product] = a.[product] 
      FOR XML PATH ('')) 
      , 1, 1, '') AS Remark 
FROM TableName AS a 
GROUP BY [product] 

輸出

╔═════════╦═══════════╦═════════════╗ 
║ PRODUCT ║ TOTAL_QTY ║ REMARK ║ 
╠═════════╬═══════════╬═════════════╣ 
║ A  ║   6 ║ IT=2,SER=4 ║ 
║ B  ║   1 ║ IT=1  ║ 
║ C  ║   4 ║ PU=4  ║ 
║ D  ║   3 ║ SAL=1,SER=2 ║ 
╚═════════╩═══════════╩═════════════╝ 
0

請嘗試:

SELECT product, SUM(qty) Qty, 
    STUFF(
    (SELECT ','+b.dept+'='+CAST(qty as nvarchar(10)) 
     FROM YourTable b where b.product=a.product 
     FOR XML PATH(''),type).value('.','nvarchar(max)'), 1, 1, '') 
from YourTable a 
group by product