Pomoc - Szukaj - Użytkownicy - Kalendarz
Pełna wersja: Grupowanie różnicy wartości z dwóch tabel
Forum PHP.pl > Forum > Bazy danych > MySQL
brbKify
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
trueblue
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ą.
brbKify
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 sciana.gif
W drugim liczby pokazują się poprawnie ale nie mam pojęcia jak je odjąc sad.gif
trueblue
W jednym zapytaniu ma być JOIN, bez żadnego UNION.
To jest wersja lo-fi głównej zawartości. Aby zobaczyć pełną wersję z większą zawartością, obrazkami i formatowaniem proszę kliknij tutaj.
Invision Power Board © 2001-2018 Invision Power Services, Inc.