1

我有一张表(tblproduct),其中包含以下字段:部门、产品、数量。样本数据如下:

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

我想在 sql server 中创建存储的 pro,结果如下:

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

请。任何帮助。谢谢。

4

2 回答 2

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 ║
╚═════════╩═══════════╩═════════════╝
于 2013-05-18T05:31:32.040 回答
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
于 2013-05-18T05:39:48.320 回答