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

Vaše odpověď

Mohlo by se hodit


Prosím používejte diakritiku a interpunkci.

Ochrana proti spamu. Napište prosím číslo dvě-sta čtyřicet-sedm: