Bartek
Borczyk
Operator liczb i
słów
Temat: KWESTIA PROJEKTU
Mam tabelę:
strMagazyn_Symbol|strMagazyn_Lokalizacja|itd...
Jedną z cech magazynu jest rks, który może się zmieniać w zależności od miesiąca. Chcę oprzeć projekt na relacji dynamicznej a nie na zapisywaniu danych statycznie.
Analizując sprzedaż w danym miesiącu muszę doparować rks do magazynu. Do tej pory robiłem to w ten sposób, że wprowadzałem sobie atrybut pomocniczy strMagazyn_Okres dopisując rks z tabeli pomocniczej. Minusem takiego rozwiązania jest konieczność powielania magazynów co miesiąc w dół. W takiej sytuacji parowałem tabelę po atrybucie pomocniczym.
Dziś natchnęło mnie, że zamiast powielania krotek w dół mogę zapisywać rks dla kolejnych miesięcy jako atrybuty (strRks_201001|strRks_201002|itd.) i rozszerzać tabelę w bok.
I teraz pojawia się kwestia zapytania.
Wcześniej było tak:
select
s.strMagazyn_Symbol,
m.strMagazyn_Lokalizacja,
s.dteUmowa_Data,
mo.strRks
from
tblGtiSprzedaż_Postpaid as s
inner join tblGtiSłowniki_Magazyny as m
on s.strMagazyn_Symbol = m.strMagazyn_Symbol
inner join tblGtiSłowniki_MagazynyOkres as mo
on (s.strMagazyn_Symbol + left(convert(varchar(6),s.dteUmowaData,112),6) = m.strMagazynOkres_Symbol
Po nowemu wymyśliłem, że mogłoby być tak:
select
s.strMagazyn_Symbol,
m.strMagazyn_Lokalizacja,
s.dteUmowa_Data,
case left(convert(varchar(8),s.dteUmowa_Data,112),6)
when '201001' then m.strRks_201001
when '201002' then m.strRks_201002
...
end as strRks
from
tblGtiSprzedaż_Postpaid as s
inner join tblGtiSłowniki_Magazyny as m on s.strMagazyn_Symbol = m.strMagazyn_Symbol
Do rzeczy. Nużące byłoby wpisywanie when'ów w bloku case w nieskończoność. Szukam sposobu na zwrócenie atrybutu w zależności od wartości w left(convert(varchar(8),s.dteUmowa_Data,112),6). Da się? Jakieś inne sugestie jak najlepiej to zrobić?Bartosz Borczyk edytował(a) ten post dnia 17.04.10 o godzinie 00:43