How Can We Help?
Jak użyć tablicy parametrów w PM?
Załóżmy, że w PM zdefiniowaliśmy słownik wielowartościowy z kluczem postaci “RRRR-MM”. Słownik ma cztery wartości, np st1,st2,st3,st4.
Możemy pobrać z niego wartości w taki sposób:
SELECT 
tab.okres,
tab.st1,
 tab.st2, tab.st3, tab.st4
FROM  
(SELECT 
wiersz.ref.value('(Key/text())[1]', 'varchar(50)') AS okres, 
wart.ref.value('(anyType/text())[1]', 'decimal (18,2)') AS 'st1', 
wart.ref.value('(anyType/text())[2]', 'decimal (18,2)') AS 'st2', 
 wart.ref.value('(anyType/text())[3]', 'decimal (18,2)') AS 'st3', 
wart.ref.value('(anyType/text())[4]', 'decimal (18,2)') AS 'st4' 
FROM 
PulpitMenedzerski.Dashboard.DictionaryItem i 
CROSS apply
(SELECT   cast(value AS xml)) AS X(X) 
CROSS apply X.X.nodes('MultiValueItem') AS wiersz(ref) 
CROSS apply wiersz.ref.nodes('Values') AS wart(ref)
WHERE    i.DictionaryId = 1
) 
AS tab
Jeżeli z powyższego zapytania utworzymy widok, odwołanie do stawek będzie bardzo proste:
set @rok = year(cast (@okres+'-01' as date)); set @mies = month(cast (@okres+'-01' as date)); declare @st1 decimal (5,2), @st2 decimal(5,2) ,@st3 decimal (5,2), @st4 decimal (5,2); select @st1 = st1 , @st2 = st2 , @st3 = st3 , @st4 = st4 FROM vStawki where okres = @okres;