Forum Użytkownikow Subiekt GT

InsERT GT => Dodatki - zestawienia - sfera => Wątek zaczęty przez: Paweł Em w Styczeń 10, 2021, 15:49:40

Tytuł: Problem z prawidłowym połączeniem tabel w sql
Wiadomość wysłana przez: Paweł Em w Styczeń 10, 2021, 15:49:40
Witam wszystkich forumowiczów.
Jestem nowym użytkownikiem.

Próbuje zautomatyzować sobie proces przenoszenia wszystkich towarów do excela, z jakiegoś anglojęzycznego forum skopiowałem makro które działa, pozostaje tylko napisać prawidłowe połącznie tabel w sql. Jednak napotykam na problem ponieważ indeksy wyświetlają potrojone(tzn. każdy jest razy 3 ) gdzieś tam wyczytałem,że muszę przed select wstawić distinct.
Jednak teraz jeżeli towar jest na stanie to wtedy indeks się dubluje.
Screeny w załączniku.
Prosiłbym o pomoc/naakierowanie na rozwiązanie:)
Łącze tabele  Towar Stan Cena

Select distinct t.[tw_IdGrupa],  t.[tw_Symbol] , t.[tw_Nazwa], s.st_Stan, t.[tw_JednMiary], c.[tc_CenaNetto7], c.[tc_CenaBrutto7]
from [dbo].[tw__Towar] as t
  join tw_Cena as c ON t.tw_Id = c.tc_Id
 join tw_Stan as s ON t.tw_Id = s.st_TowId  where tw_Rodzaj = 8 AND tw_IdGrupa=1 OR tw_IdGrupa=11 OR tw_IdGrupa=6 OR tw_IdGrupa=4
Tytuł: Odp: Problem z prawidłowym połączeniem tabel w sql
Wiadomość wysłana przez: birds22 w Styczeń 10, 2021, 16:08:19
1.Jeżeli masz więcej niż jeden magazyn to w tabeli tw_stan każdy towar jest tyle razy ile masz magazynów. Dodaj warunek określający magazyn, którego stan Ciebie interesuje lub podaj odpowiednio zsumowany stan.

2. tw_Rodzaj = 8 (1 - towar; 2 - usługa; 4 - opakowanie; 8 - komplet; 16 - opłata)

3. Przy łączeniu różnych operatorów logicznych musisz zadbać o nawiasy
 WHERE tw_Rodzaj = 8 AND tw_IdGrupa=1 OR tw_IdGrupa=11 OR tw_IdGrupa=6 OR tw_IdGrupa=4 oznacza, że chcesz wybrać komplety z grupy 1 lub inny asortyment z grup (11,6,4) niezależnie od rodzaju tego asortymentu.
Może chciałeś raczej napisać:
WHERE tw_Rodzaj = 8 AND (tw_IdGrupa=1 OR tw_IdGrupa=11 OR tw_IdGrupa=6 OR tw_IdGrupa=4)albo ładniej
WHERE tw_Rodzaj = 8 AND tw_IdGrupa IN(1,11,6,4)
4. Używanie DISTINCT w tym przypadku jest błędem - trzeba poprawnie napisać zapytanie.
Tytuł: Odp: Problem z prawidłowym połączeniem tabel w sql
Wiadomość wysłana przez: Paweł Em w Styczeń 13, 2021, 22:54:40
Dziękuje działa