| Autor | Zpráva | ||
|---|---|---|---|
| solta Profil |
#1 · Zasláno: 9. 10. 2013, 14:01:03
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 |
#3 · Zasláno: 9. 10. 2013, 15:00:43
Děkuji moc
|
||
| Kajman Profil |
#4 · Zasláno: 9. 10. 2013, 15:02:46
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 |
#5 · Zasláno: 9. 10. 2013, 15:49:47
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 |
#7 · Zasláno: 9. 10. 2013, 17:12:25
Kajman:
Děkuji bylo mi jasné že je to tou nulovou hodnotou ale nevěděl jsem co sní |
||
|
Časová prodleva: 12 let
|
|||
0