fizetési egyenleg lekérdezése
Sziasztok,
van 3 kapcsolodó tábla, amelyek:
-> objektum
-> elofizetesek (0..n objektumra)
-> befizetesek (0..n objektumra)
Olyan lekérdezést szeretnék gyártani, amely kiszámolja nekem, mekkora az hátraléka (ground_total) egyes objektumoknak.
Amivel előálltam eddig az érzésem szerint nem túl hatékony:Ettől biztosan létezik hatékonyabb megoldás, szerintetek merre induljak el?
Üdv
Sanyi
■ van 3 kapcsolodó tábla, amelyek:
-> objektum
-> elofizetesek (0..n objektumra)
-> befizetesek (0..n objektumra)
Olyan lekérdezést szeretnék gyártani, amely kiszámolja nekem, mekkora az hátraléka (ground_total) egyes objektumoknak.
Amivel előálltam eddig az érzésem szerint nem túl hatékony:
SELECT p.id,
(SELECT SUM(total) FROM elofiezetesek WHERE obj_id = p.id)-(SELECT SUM(amount) FROM befizetesek WHERE obj_id = p.id AND approved = 1 GROUP BY obj_id) as GROUND_TOTAL
FROM `objektum` p
GROUP BY p.id
HAVING GROUND_TOTAL > 0
Üdv
Sanyi
Én azzal kezdeném, hogy a
nem kell kávé!
Erre a LEFT JOIN -ba tett SELECT utasításra eddig nem is gondoltam, hmmm, ügyes.
Performance alapján tényleg jobbnak tűnik, de memóriaéhsége viszont nagyobb, bár nem nagy számú bejegyzésre lesz alkalmazva, úgyhogy jobb megoldás, mint az enyém :)
Köszönöm
Üdv
Sanyi