Autor Wątek: Zestawienie towarów wraz z cechą, modelem oraz grupą  (Przeczytany 4409 razy)

0 użytkowników i 1 Gość przegląda ten wątek.

Offline Adrian Szfix

  • Nowy użytkownik
  • *
  • Wiadomości: 1
  • Reputacja +0/-0
  • Wersja programu: Subiekt GT 1.71 HF2
Zestawienie towarów wraz z cechą, modelem oraz grupą
« dnia: Maj 18, 2022, 18:48:34 »
Witam wszystkich formumowiczów,
pierwszy raz się udzielam więc proszę o wyrozumiałość:)
próbuję wykonać własne zestawienie do Subiekta GT.
Ma ono wczytywać listę towarów z polami Nazwa, Symbol, Grupa, Model, Cecha.
Wykonałem proste polecenia które wyciągają takie dane jak Model czy Cecha ale nie potrafię ich połączyć w jedno zapytanie.
Nie odnalazłem również informacji jak pobrać Grupę. Jeżeli ktoś ma pomysł to proszę o pomoc ewentualnie proszę o kontakt, zapłacę.

1. Pobiera model
SELECT Symbol = tw_Symbol,
      Nazwa = tw_Nazwa,
  Model = mdt_Nazwa
FROM sl_ModelTw
    JOIN sl_ModelTowar on mtw_IdModel = mdt_Id
    JOIN tw__Towar on mtw_IdTowar = tw_Id

2. Pobiera Cechę
SELECT TowarSymbol = tw_Symbol,
      TowarNazwa = tw_Nazwa,
      Towar_Cecha = ctw_Nazwa
FROM sl_CechaTw
    JOIN tw_CechaTw on cht_IdCecha = ctw_Id
    JOIN tw__Towar on cht_IdTowar = tw_Id


Pozdrawiam
Adrian

Offline yemet

  • Zaawansowany użytkownik
  • ****
  • Wiadomości: 1250
  • Reputacja +46/-1
  • Wersja programu: Navireo
Zestawienie towarów wraz z cechą, modelem oraz grupą
« Odpowiedź #1 dnia: Maj 18, 2022, 19:24:21 »
Słownik grup towarowych jest w tabeli w sl_GrupaTw. Od strony towaru jest to pole tw_idGrupa.

Co do samego złączenia to żadna filozofia.... po prostu dodajesz kolejne joiny np.:

.....
FROM sl_ModelTw
    JOIN sl_ModelTowar on mtw_IdModel = mdt_Id
    JOIN tw__Towar on mtw_IdTowar = tw_Id
    JOIN tw_CechaTw on cht_IdTowar = tw_Id
    JOIN sl_CechaTw on cht_IdCecha = ctw_Id

Tylko, że powinieneś zacząć od tabeli tw__Towar i robić do pozostałych tabel LEFT JOINy jeśli nie chcesz pogubić towarów, które nie mają przypisanych cech i modeli.
Ja z modeli nie korzystam w ogóle i z głowy nie kojarzę jakie tam są dokładnie relacje. Co do cech to na pewno ci się rozmnożą rekordy tam gdzie towary będą miały więcej niż jedną cechę. Z tym sobie można poradzić na kilka sposobów. Najprostszy to string_agg ale potrzebny do tego SQL Server w wersji 2017 inaczej kombinacja z zapytaniami z XMLem (przepisy do znalezienia w necie) lub customowe funkcje. Ja korzystam z tej ostatniej opcji w takich sytuacjach.

I gorąco polecam korzystać z aliasów tabel, łatwiej się pisze zapytania z podpowiedziami od SSMSa ;)
« Ostatnia zmiana: Maj 18, 2022, 19:27:38 wysłana przez yemet »

Forum Użytkownikow Subiekt GT

Zestawienie towarów wraz z cechą, modelem oraz grupą
« Odpowiedź #1 dnia: Maj 18, 2022, 19:24:21 »