Forum Użytkownikow Subiekt GT
InsERT GT => Dodatki - zestawienia - sfera => Wątek zaczęty przez: Adrian Szfix w 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
-
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 ;)