Napisany przez: brbKify 8.06.2018, 17:34:15
Witam, po lekkich problemach z zapytaniem w końcu doszedłem do właściwej formy:
CODE
1) SELECT (SUM(mięso_na_produkcje.Ilość_kg) - (SELECT SUM(pozycje_do_zamówienia.Ilość_kg) FROM pozycje_do_zamówienia)) AS 'Stan na magazynie (kg)' FROM mięso_na_produkcje
2) SELECI Rodzaj_mięsa, (SUM(Ilość_kg) - (SELECT SUM(Ilość_kg) FROM pozycje_do_zamówienia)) as 'Stan (kg)' from mięso_na_produkcje group by Rodzaj_mięsa
Wynik pierwszego selecta to 1369 i to jest wynik poprawny. Problem w tym, że ta wartość nie zda mi się na wiele więc chciałem ją rozdzielić poprzez Rodzaj_mięsa. Jednak w tym momencie wyniki odejmowania są już niepoprawne (189, 379, 159).
Mógłby ktoś mi wskazać błąd i pomóc go rozwiązać? :/
EDIT:
Powinienem od razu to zamieścić, ale piszę teraz:
Ilość_kg dla mięso_na_produkcje to kolejno 510, 700, 480, natomiast dla pozycje_do_zamówienia to 9, 192, 120. Wynika z tego, że z każdej sumy Ilość_kg od Rodzaj_mięsa odejmuje sumę Ilość_kg dla całego pozycje_do_zamówienia bo 510 - 9 - 192 - 120 = 189. Tyle że kombinując z where Rodzaj_mięsa='' wyskakują mi błedy
Napisany przez: trueblue 8.06.2018, 17:50:34
Są niepoprawne, bo kilogramy z pozycji zamówienia sumujesz z całej tabeli.
Zerknij w Google jak się robi łączenie tabel zamiast robić podselect. A jak bardzo chcesz to chociaż sprzęgnij go poprzez poprzez 'Rodzaj_mięsa' z nadrzędną tabelą.
Napisany przez: brbKify 8.06.2018, 18:18:54
No więc popróbowałem dalej ale nadal nic (chociaż nie jestem pewien czy o to Tobie chodziło)
CODE
select Rodzaj_mięsa, (SUM(mięso_na_produkcje.Ilość_kg)-SUM(pozycje_do_zamówienia.Ilość_kg)) FROM pozycje_do_zamówienia, mięso_na_produkcje group by Rodzaj_mięsa
Select Rodzaj_mięsa, SUM(mięso_na_produkcje.Ilość_kg) from mięso_na_produkcje group by Rodzaj_mięsa
UNION
select Mięso, SUM(pozycje_do_zamówienia.Ilość_kg) from pozycje_do_zamówienia join asortyment on pozycje_do_zamówienia.ID_produktu=asortyment.ID_produktu group by Mięso
W pierwszym wyniki są po 20 - 30 tysięcy
W drugim liczby pokazują się poprawnie ale nie mam pojęcia jak je odjąc
Napisany przez: trueblue 9.06.2018, 12:36:31
W jednym zapytaniu ma być JOIN, bez żadnego UNION.