源表编号 单位 地址 单号 产品 数量
1205057 顺达食品 黄海南路 98 达利源蛋黄派 24
1205057 顺达食品 黄海南路 98 伊犁纯酸乳 42
1205057 顺达食品 黄海南路 98 康师傅桶面 30
1205057 顺达食品 黄海南路 98 娃哈哈八宝粥 24
结果编号 1205057 单位 顺达食品 地址 黄海南路 单号 98 产品 达利源蛋黄派 数量 24 产品 伊犁纯酸乳 数量 42 产品 康师傅桶面 数量 30 产品 娃哈哈八宝粥 数量 24或 1205057 顺达食品 黄海南路 98 达利源蛋黄派 24 伊犁纯酸乳 42 康师傅桶面 30 娃哈哈八宝粥 24
1205057 顺达食品 黄海南路 98 达利源蛋黄派 24
1205057 顺达食品 黄海南路 98 伊犁纯酸乳 42
1205057 顺达食品 黄海南路 98 康师傅桶面 30
1205057 顺达食品 黄海南路 98 娃哈哈八宝粥 24
结果编号 1205057 单位 顺达食品 地址 黄海南路 单号 98 产品 达利源蛋黄派 数量 24 产品 伊犁纯酸乳 数量 42 产品 康师傅桶面 数量 30 产品 娃哈哈八宝粥 数量 24或 1205057 顺达食品 黄海南路 98 达利源蛋黄派 24 伊犁纯酸乳 42 康师傅桶面 30 娃哈哈八宝粥 24
--> 测试数据:[test]
if object_id('[test]') is not null
drop table [test]
create table [test](
[编号] int,
[单位] varchar(8),
[地址] varchar(8),
[单号] int,
[产品] varchar(12),
[数量] int
)
insert [test]
select 1205057,'顺达食品','黄海南路',98,'达利源蛋黄派',24 union all
select 1205057,'顺达食品','黄海南路',98,'伊犁纯酸乳',42 union all
select 1205057,'顺达食品','黄海南路',98,'康师傅桶面',30 union all
select 1205057,'顺达食品','黄海南路',98,'娃哈哈八宝粥',24
-- 查询处理
SELECT *FROM (SELECT DISTINCT [编号],[单位],[地址],[单号] FROM [test])A
OUTER APPLY(
SELECT 产品和数量= STUFF(REPLACE(REPLACE(
( SELECT [产品]+' '+LTRIM([数量]) as 产品和数量 FROM [test] N
WHERE [编号]=A.编号 AND [单位]=A.单位 AND [地址]=A.地址 AND [单号]=A.单号
FOR XML AUTO
), '<N 产品和数量"', ' '), '"/>', ''), 1, 1, '')
)N
/*
编号 单位 地址 单号 产品和数量
1205057 顺达食品 黄海南路 98 N 产品和数量="达利源蛋黄派 24<N 产品和数量="伊犁纯酸乳 42<N 产品和数量="康师傅桶面 30<N 产品和数量="娃哈哈八宝粥 24
*/
--> 测试数据:[test]
if object_id('[test]') is not null
drop table [test]
create table [test](
[编号] int,
[单位] varchar(8),
[地址] varchar(8),
[单号] int,
[产品] varchar(12),
[数量] int
)
insert [test]
select 1205057,'顺达食品','黄海南路',98,'达利源蛋黄派',24 union all
select 1205057,'顺达食品','黄海南路',98,'伊犁纯酸乳',42 union all
select 1205057,'顺达食品','黄海南路',98,'康师傅桶面',30 union all
select 1205057,'顺达食品','黄海南路',98,'娃哈哈八宝粥',24
-- 查询处理
SELECT *FROM (SELECT DISTINCT [编号],[单位],[地址],[单号] FROM [test])A
OUTER APPLY(
SELECT 产品和数量= STUFF(REPLACE(REPLACE(
( SELECT [产品]+' '+LTRIM([数量]) as VALUE FROM [test] N
WHERE [编号]=A.编号 AND [单位]=A.单位 AND [地址]=A.地址 AND [单号]=A.单号
FOR XML AUTO
), '<N value="', ' '), '"/>', ''), 1, 1, '')
)N/*
编号 单位 地址 单号 产品和数量
1205057 顺达食品 黄海南路 98 达利源蛋黄派 24 伊犁纯酸乳 42 康师傅桶面 30 娃哈哈八宝粥 24
*/