Witaj Gościu! ( Zaloguj | Rejestruj )

Forum PHP.pl

 
Reply to this topicStart new topic
> Grupowanie różnicy wartości z dwóch tabel
brbKify
post 8.06.2018, 17:34:15
Post #1





Grupa: Zarejestrowani
Postów: 2
Pomógł: 0
Dołączył: 8.06.2018

Ostrzeżenie: (0%)
-----


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

Ten post edytował brbKify 8.06.2018, 19:41:00
Go to the top of the page
+Quote Post
trueblue
post 8.06.2018, 17:50:34
Post #2





Grupa: Zarejestrowani
Postów: 6 761
Pomógł: 1822
Dołączył: 11.03.2014

Ostrzeżenie: (0%)
-----


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ą.


--------------------
Go to the top of the page
+Quote Post
brbKify
post 8.06.2018, 18:18:54
Post #3





Grupa: Zarejestrowani
Postów: 2
Pomógł: 0
Dołączył: 8.06.2018

Ostrzeżenie: (0%)
-----


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
Go to the top of the page
+Quote Post
trueblue
post 9.06.2018, 12:36:31
Post #4





Grupa: Zarejestrowani
Postów: 6 761
Pomógł: 1822
Dołączył: 11.03.2014

Ostrzeżenie: (0%)
-----


W jednym zapytaniu ma być JOIN, bez żadnego UNION.


--------------------
Go to the top of the page
+Quote Post

Reply to this topicStart new topic
1 Użytkowników czyta ten temat (1 Gości i 0 Anonimowych użytkowników)
0 Zarejestrowanych:

 



RSS Wersja Lo-Fi Aktualny czas: 29.03.2024 - 00:43