SQL المحورية باستخدام عمود XML
-
04-07-2019 - |
سؤال
هل لديها مثال على محور باستخدام جدول مع عمود XML في ذلك - تحول على وجه التحديد بعض العناصر في العمود XML إلى عمود في الجدول المحوري؟ أحاول لبناء واحد، ولكن بناء الجملة هو قتل لي. أكس في مزود من الصعب اللعنة للعمل مع، مقارنة إلى XML في C #. وأظن أن هذا أمر مستحيل، ولكنه لن يضر للتحقق:)
المحلول
وهنا مثال بسيط لديه المخازن مع تفاصيل المنتج المخزنة في أكس. محور في الجزء السفلي مما يدل على المخازن ومبلغ من السعر حسب الفئات 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
لا تنتمي إلى StackOverflow