Autor Zpráva
solta
Profil
zdravim

nevím jak správně pojmenovat muj problé, ale potřebuji payments_price_total porovnat s documents.price_total tak jsem si to vymyslel to pochopitelně nefunguje
$sql = "SELECT documents.*,
SUM(payments.price_total) AS payments_price_total,
FROM documents
LEFT JOIN payments ON payments.documents_id = documents.id)
WHERE 
payments_price_tota = documents.price_total
GROUP BY documents.id";
Tori
Profil
1. překlep: "payments_price_tota"
2. když pracujete s výsledkem agregační funkce, musíte dát podmínku nikoli do WHERE, ale HAVING
solta
Profil
Děkuji moc
Kajman
Profil
Nebo můžete připojit až sečtenou cenu.
SELECT documents.*
FROM   documents
       JOIN (SELECT documents_id,
                    Sum(price_total) AS payments_price_total
             FROM   payments
             GROUP  BY documents_id) p
         ON p.documents_id = documents.id
            AND p.payments_price_total = documents.price_total 
solta
Profil
ještě jeden problém pokud bych chtěl podmínku změnit na payments_price_total < documents.price_total tak to vypiše pouze řádky které mají záznam v tabulce payments
Kajman
Profil
To je null hodnotou. Můžete např. porovnávat s nulou pokud tam je null hodnota.

coalesce(payments_price_total, 0) < coalesce(documents.price_total, 0)
solta
Profil
Kajman:
Děkuji bylo mi jasné že je to tou nulovou hodnotou ale nevěděl jsem co sní

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: