Autor | Zpráva | ||
---|---|---|---|
Petr Ká Profil |
Ahoj,
řeším výpis zákazníků ze dvou tabulek, kde jedna je seznam zákazníků a druhá jejich platby (at už kladné, tak záporné - dluh) SELECT a.id,a.user_id, a.firstname, a.price_total, a.status, a.memo, a.phone, a.lastname, SUM( b.amount ) stav FROM customer a LEFT JOIN payment b ON a.id = b.id_customer GROUP BY b.id_customer ORDER BY a.id DESC Problém je v tom, že když u zákazníka neexistuje žádná platba, nevypíše se... |
||
juriad Profil |
#2 · Zasláno: 15. 10. 2013, 11:04:39
Změň
GROUP BY na a.id ; b.id_customer je v případě neexistence platby NULL .
|
||
Petr Ká Profil |
juriad:
„Změň GROUP BY na a.id; b.id_customer je v případě neexistence platby NULL.“ Výborně, taková "blbost" :) Děkuji moc Ještě dotaz, lze na úrovni DB ještě změnit NULL na nulový integer (Právě pokud bude NULL)? Něco jako v php intval() ? Protože toto ještě je pak nasazeno na filtry, kde si administrátor může filtrovat právě i např s nulovým stavem, dlužníci a pod. EDIT: Vyřešeno pomocí IFNULL(): SELECT a.id,a.user_id, a.firstname, a.price_total, a.status, a.memo, a.phone, a.lastname, IFNULL(SUM( b.amount ),0) stav FROM customer a LEFT JOIN payment b ON a.id = b.id_customer GROUP BY a.id ORDER BY a.id DESC |
||
Časová prodleva: 11 let
|
0