Zdravím všechny ve spolek prosím o pomoc s doplnění a upřesněním syntaxe SQL dotazu. Mám dvě tabulky: 1) Zbozi 2) Pohyby První tabulka obsahuje DB zboží se strukturou: ID, Nazev, Cena, MJ Druhá tabulka řeši pohyby prodejnosti po jednotlivých dnech a struktura je následující: ID, Datum, ID_Zbozi, ID_Prodejce, Mnozstvi Řekněme, že jsou tam základní data Tab1:
ID NAZEV CENA MJ
--------------------------------
1 Meloun 20 ks
2 Kiwi 5 ks
3 Skorice 49 ks
4 Zazvor 62 ks
5 Prevodovka 5200 ks
Tab2:
ID Datum, ID_Zbozi, ID_Prodejce, Mnozstvi
-----------------------------------------------------
1 01.10.2013 1 1 8
2 01.10.2013 2 1 6
3 02.10.2013 1 1 3
4 03.10.2013 4 1 12
5 05.11.2013 5 1 4
6 05.11.2013 5 2 1
7 05.10.2013 5 1 2
8 05.10.2013 5 2 3
Výsledek by měla být křížová tabulka filtrovaná dle data v rozsahu od-do a dle prodejce, takže tabulka prodeje za říjen prodejce č. 1 by měla mít výsledek:
ID_Zbozi Prodejce 01.10. 02.10. 03.10. 04.10. 05.10.
---------------------------------------------------------------------------
1 1 8 3
2 1 6
4 1 12
5 1 2
S pomocí NETu a zdejšího fóra jsem vytvořil následující dotaz:
With Tabulka As (select Tab2.ID_Prodejce, Tab2.datum, Tab2.Mnozsstvi, Tab1.Nazev From Tab2
INNER JOIN Tab1 ON Tab2.ID_Zbozi = Tab1.ID)
select * from (Select datum, Nazev, Mnozstvi from Tabulka) As A pivot (SUM(mnozstvi) for datum in (" + DatumText + ")) As B
ALE má to následující mouchy: 1) Zobrazí se tam i zboží, které v daném časovém období vůbec nemělo pohyb. To tam být nemá. 2) Neumím tam začlenit filtrování JEN KONKRÉTNÍHO PRODEJCE 3) A potřeboval bych tam mít sumarizace jak sloupců tak řádků. Mnohokrát díky budu vděčný za každou pomoc.
|