Измените формат вывода с помощью базы данных adventureworks2008R2
Мне нужно изменить формат вывода в следующем формате:
43659 709, 711, 712, 714, 716, 771, 772, 773, 774, 776, 777, 778
43660 758, 762
43661 708, 711, 712, 715, 716, 741, 742, 743, 745, 747, 773, 775, 776, 777, 778
Как использовать Pivot/Unpivot для следующего запроса? Или есть другой способ сделать это?
Select Distinct ProductID, SalesOrderID
from Sales.SalesOrderDetail
Group By SalesOrderID, ProductID
Order By SalesOrderID, ProductID
1 ответ
Решение
Вам нужно разыграть продукцию
SELECT distinct
t1.SalesOrderID AS [salesorderid],
STUFF(( SELECT concat(',' , cast(t2.productid as varchar(10))) AS [text()]
FROM Sales.SalesOrderDetail t2
WHERE
t1.salesorderid = t2.salesorderid
order by t2.productid
FOR XML PATH('')
), 1, 1, '' )
AS [products]
FROM Sales.SalesOrderDetail t1
where salesorderid in(43659,43660,43661)
salesorderid products
------------ ----------------------------------------------------------
43659 709,711,712,714,716,771,772,773,774,776,777,778
43660 758,762
43661 708,711,712,715,716,741,742,743,745,747,773,775,776,777,778
(3 row(s) affected)