我想创建此表并在我的报告中使用它。
我有一张这样的表:
--------------------------------------
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
答案 0 :(得分:2)
如果使用SQL服务器,请使用以下查询
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
答案 1 :(得分:0)
由于你没有提到你的RDBMS,你可以使用类似的东西
select sum(sum),
commodity,
group_concat(unit SEPARATOR '-') from commo2 t
group by commodity;
GROUP_CONCAT适用于MYSQL。您可以在RDBMS中搜索group_concat
的替代项,就像在Oracle中一样,您可以使用LISTAGG
。但逻辑是相同的
MYSQL中的演示