我想创建这个表并在我的报告中使用它。
我有一张这样的桌子:
--------------------------------------
sum commodity unit
--------------------------------------
100 a4 paper x
200 a5 paper y
7 a4 paper z
410 pencil e
300 a5 paper w如何从上面的表中创建这样的表?
--------------------------------------
sum commodity unit
--------------------------------------
107 a4 paper x-z
500 a5 paper y-w
410 pencil e发布于 2017-05-29 08:18:43
如果使用SQL server的意思,请使用下面的查询
CREATE TABLE table2(sums INT, commodity VARCHAR(100),unit VARCHAR(2))
INSERT INTO table2(sums , commodity ,unit)
SELECT 100,'a4 paper','x' UNION ALL
SELECT 200,'a5 paper','y' UNION ALL
SELECT 7,'a4 paper','z' UNION ALL
SELECT 410,'pencil','e' UNION ALL
SELECT 300,'a5 paper','w'
SELECT SUM(sums) , commodity , STUFF( (SELECT '-' + unit FROM table2 I
WHERE I.commodity = O.commodity FOR XML PATH('')),1,1,'') unit
FROM table2 O
GROUP BY commodity发布于 2017-05-29 08:15:10
由于您没有提到您的RDBMS,您可以使用这样的方法
select sum(sum),
commodity,
group_concat(unit SEPARATOR '-') from commo2 t
group by commodity;GROUP_CONCAT在MYSQL上工作。您可以在关系数据库管理系统中搜索替代的group_concat,就像在Oracle中可以使用LISTAGG一样。但逻辑是一样的
MYSQL演示
https://stackoverflow.com/questions/44237462
复制相似问题