Skrypt tworzący zestawienie zamówień

0

Cześć
W bazie mam informacje o zamówionych towarach, w formie: Klient, Nr Zamówienia, Zamówiony Towar, Ilość
W jednym zamówieniu mam kilka towarów czyli do jednego zamówienia najczęściej odnosi się kilka rekordów.

Chciał bym napisać skrypt który będzie wyświetlał zamówienia w formie tabelki:

Sklep Towar 1 Towar 2 Towar 3
Sklep 1 5 6
Sklep 2 9
Sklep 3 4 4 2

Obecnie mam coś takiego:

SELECT 
       adr_Nazwa [Kontrahent],

       [Nazwa towaru] = CASE
                   WHEN tw_Nazwa = ''
                       THEN '(Brak nazwy towaru)'
                       ELSE CASE
                               WHEN tw_Nazwa IS NULL
                                   THEN ob_opis 
                                   ELSE tw_Nazwa
                            END
                  END,
        SUM(ob_Ilosc) [Ilość]

FROM dok__Dokument
 

Co zrobić aby wyświetlać w ten sposób?

0
  1. To co podałeś to jest jedna tabela? To ją wyrzuć i znormalizuj a potem tutaj wróć.
  2. Nie wiem czy zauważyłeś, ale nie napisałeś tutaj nic na temat jakichkolwiek sklepów w bazie...
0

Zapytanie będzie pisane w programie Subiekt GT, dane są w kilku tabelach, to co podałem wcześniej jest w dużym uproszczeniu.

Cały mój skrypt wygląda tak:

SELECT 
      

       kh_Symbol [Symbol],
       adr_Nazwa [Kontrahent],
       adr_Ulica,
       [Nazwa towaru] = CASE
                   WHEN tw_Nazwa = ''
                       THEN '(Brak nazwy towaru)'
                       ELSE CASE
                               WHEN tw_Nazwa IS NULL
                                   THEN ob_opis 
                                   ELSE tw_Nazwa
                            END
                  END,
        SUM(ob_Ilosc*ob_Znak) [Ilość]

FROM dok__Dokument
LEFT JOIN kh__Kontrahent ON dok__Dokument.dok_OdbiorcaId=kh__Kontrahent.kh_Id
LEFT JOIN adr__Ewid ON kh_Id=adr_IdObiektu AND adr_TypAdresu=1
LEFT JOIN dok_Pozycja ON dok__Dokument.dok_Id=dok_Pozycja.ob_DokHanId
LEFT JOIN tw__Towar ON dok_Pozycja.ob_TowId=tw__Towar.tw_Id
LEFT JOIN sl_GrupaTw ON tw__Towar.tw_IdGrupa = sl_GrupaTw.grt_Id
LEFT JOIN kh_CechaKh ON kh__Kontrahent.kh_Id= kh_CechaKh.ck_IdKhnt
LEFT JOIN sl_CechaKh ON kh_CechaKh.ck_IdCecha=sl_CechaKh.ckh_Id

WHERE
 dok_DataWyst BETWEEN {DR:Data dokumentu z okresu:}
AND
(dok_Typ IN({CHL:zamówienie#16#faktura sprzedaży#2#rachunek sprzedaży#4#korekta faktury sprzedaży#6#zwrot detaliczny#14#paragon#21#:Typ dokumentu:16:dokumenty sprzedaży})) 

Bez znajomości dokładnej struktury bazy jest dość ciężko się w tym połapać, niestety w sieci żadnego pełnego wzorca nie znalazłem więc do prawie wszystkiego musiałem sam dojść.
Teraz chodzi o to aby zmienić wypisywanie tak aby pojawiała się tabelka jak wcześniej pokazałem.

adr_Nazwa zawiera nazwę kontrahenta
kh_Symbol to symbol kontrahenta
ob_Ilosc zawiera ilość towaru na zamówieniu
tw_Nazwa to nazwa towaru

1 użytkowników online, w tym zalogowanych: 0, gości: 1