Witam wszystkich,
długo zastanawiałem się czy wpisać się do "przedszkola" czy od razu "walić" do MySQL...
Piszę obsługę bazy w PHP i mam problem:
Mam dwie tabele: zamowienia i dostawy
Tabela zamowienia ma ID i zamówioną ilość
natomiast w tabeli dostawy mam ID zamowienia i ilość dostarczoną, ponieważ np. zamawiamy 100szt a dostajemy 2 razy po 50 smile.gif

I teraz problem:
Tabela zamowienia
ID........IloscZamowiona
1.........100
2.........50
3.........25
4.........30

Tabela dostawy
IDZamowienia.....IloscDostarczona
1............................50
1............................48
1............................ 1
2............................50
3............................ 8
Chciałbym wyświetlić tylko te rekordy dla których suma IloscDostarczona dla IDZamowienia jest mniejsza niż ilość zamowiona, czyli otrzymać wynik:

ID............IloscBrakujaca
1.........................1
3.......................17
4.......................30

Probowałem to zrobić aliasem do tymczasowej tabeli typu 'SELECT IDzamowienia, SUM(IloscDostarczona) FROM dostawy GROUP BY IDZamowienia' i potem łączyć to z tabelą zamowienia ale tu muszę mieć "dwa w jednym", a mysql_query () z php tego nie obsługuje...
Jak to zrobić profesjonalnie, bo z MySQL to "raczkuję". smile.gif

PS. W tej chwila mam tak:

  1. SELECT ID, IloscZamowiona-Suma AS IloscBrakujaca
  2. FROM zamowienia LEFT JOIN (SELECT IDZamowienia AS IDZ, SUM(IloscDostarczona) AS Suma FROM dostawy GROUP BY dostawy.IDZamowienia) AS t1 ON IDzamowienia=IDZ
  3. WHERE Suma<IloscZamowiona OR Suma IS NULL

ale jak napisałem wcześniej to zapytanie "nie przechodzi" przez mysql_query() sad.gif

PS2. Ponieważ np. 30-null=null dlatego w wyniku np. dla ID=4 zamiast 30 (nie było dostawy) otrzymuje NULL, co bez problemu podmieniam sobie w PHP, ale jak można w prosty sposób tego uniknąć?