Autor Wątek: Dynamiczne przeliczanie stanów kompletów  (Przeczytany 1550 razy)

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

Offline pittero

  • Nowy użytkownik
  • *
  • Wiadomości: 3
  • Reputacja +0/-0
  • Wersja programu: 1.64
Dynamiczne przeliczanie stanów kompletów
« dnia: Styczeń 13, 2021, 01:55:28 »
Witajcie,
potrzebuję zapytania SQL (zestawienia) którym wyciągnę symbol produktu oraz jaki jest stan produktu (tw_rodzaj=1) w mag_id=1, a dla (tw_rodzaj=8) ile kompletów można maksymalnie stworzyć na podstawie stanu składników w magazynie id = 1.

Czyli mamy zestaw składający się z 3 kubków i 1 etui, a na stanie mamy 29 kubków, 10 etui to możemy zmontować pełne 9 kompletów (3x9=27, 1x7).

Pomożecie ?

Pozdrawiam

Offline birds22

  • Ekspert
  • *****
  • Wiadomości: 9210
  • Reputacja +1304/-21
  • Wersja programu: Najnowsza
Dynamiczne przeliczanie stanów kompletów
« Odpowiedź #1 dnia: Styczeń 13, 2021, 02:15:05 »
Pomożemy.
Z czym masz problem?
Sławek, Zduńska Wola

Offline pittero

  • Nowy użytkownik
  • *
  • Wiadomości: 3
  • Reputacja +0/-0
  • Wersja programu: 1.64
Odp: Dynamiczne przeliczanie stanów kompletów
« Odpowiedź #2 dnia: Styczeń 13, 2021, 07:55:16 »
SELECT
tw_Symbol, tw_Rodzaj, st_Stan FROM tw__Towar
INNER JOIN tw_Stan ON tw_Id = st_TowId
INNER JOIN tw_cena ON tw_Id = tc_Id
WHERE tw_Zablokowany = 0 AND tw_Rodzaj IN (1,8) AND tw_SklepInternet = 1
AND st_MagId = 1
GROUP BY tw_Symbol, tw_Rodzaj, st_Stan

Jak w przypadku gdy tw_Rodzaj=8 w st_Stan wpisać liczbę wyliczaną z tego zapytania:
SELECT MIN(FLOOR(st_Stan/kpl_Liczba)) AS st_Dostepny FROM tw_Komplet JOIN tw__Towar ON kpl_IdSkladnik = tw_Id JOIN tw_Stan ON kpl_IdSkladnik = st_TowId WHERE st_MagId = 1 GROUP BY kpl_IdKomplet

Offline tomaszf

  • Zaawansowany użytkownik
  • ****
  • Wiadomości: 523
  • Reputacja +12/-0
  • Wersja programu: Subiekt GT 1.66
Odp: Dynamiczne przeliczanie stanów kompletów
« Odpowiedź #3 dnia: Styczeń 13, 2021, 08:56:05 »
Najprościej (nie twierdzę, że najlepiej/najwydajniej) - wrzucić drugie zapytanie w JOIN'a.
SELECT
tw_Symbol, tw_Rodzaj, st_Stan, komplet.st_Dostepny
FROM tw__Towar
INNER JOIN tw_Stan ON tw_Id = st_TowId
INNER JOIN tw_cena ON tw_Id = tc_Id
LEFT JOIN (
SELECT kpl_IdKomplet IdKomplet, MIN(FLOOR(st_Stan/kpl_Liczba)) AS st_Dostepny
FROM tw_Komplet
JOIN tw__Towar ON kpl_IdSkladnik = tw_Id
JOIN tw_Stan ON kpl_IdSkladnik = st_TowId
WHERE st_MagId = 1
GROUP BY kpl_IdKomplet
) komplet ON tw_id = komplet.IdKomplet
WHERE tw_Zablokowany = 0 AND tw_Rodzaj IN (1,8) AND tw_SklepInternet = 1
AND st_MagId = 1
GROUP BY tw_Symbol, tw_Rodzaj, st_Stan,  komplet.st_Dostepny

Forum Użytkownikow Subiekt GT

Odp: Dynamiczne przeliczanie stanów kompletów
« Odpowiedź #3 dnia: Styczeń 13, 2021, 08:56:05 »