Есть ли у кого-нибудь пример сводки с использованием таблицы со столбцом XML в ней, в частности, превращение некоторых элементов в столбце xml в столбец сводной таблицы? Я пытаюсь создать его, но синтаксис меня убивает; xml в sql чертовски сложно работать по сравнению с xml в C#. Подозреваю, что это невозможно, но проверить не мешало бы :)
SQL Pivot с использованием столбца XML
comment
Я получил отрицательный голос за это, и я не могу понять, почему.
- person jcollum   schedule 21.01.2009
Ответы (1)
Вот простой пример, в котором есть магазины с информацией о продукте, хранящейся в xml. Внизу находится сводная точка, которая показывает магазины и сумму цен по категориям A и B.
declare @test Table
(
StoreID int,
ProdXml xml
)
insert into @test
select 1, '<product cat="A" name="foo" price="10" />' union
select 2, '<product cat="A" name="bar" price="12" />' union
select 1, '<product cat="B" name="blah" price="35" />' union
select 2, '<product cat="B" name="bap" price="67" />' union
select 1, '<product cat="C" name="bip" price="18" />' union
select 2, '<product cat="A" name="bing" price="88" />' union
select 1, '<product cat="B" name="bang" price="34" />' union
select 2, '<product cat="B" name="boom" price="65" />'
--Pivot showing sum of price by Cat
select StoreID, A, B
from
(
select StoreID,
ProdXml.value('/product[1]/@cat[1]','varchar(20)') as [ProdCat],
ProdXml.value('/product[1]/@price[1]','int') as [ProdPrice]
from
@test
) up
PIVOT (SUM([ProdPrice]) FOR [ProdCat] IN ( A, B)) as pvt
ORDER BY StoreID
person
John Lemp
schedule
29.10.2008