 |
Forum PHP Romania - Discutii despre PHP, MySQL, Javascript, AJAX, etc Comunitatea PHP Romania
|
| Subiectul anterior :: Subiectul următor |
| Autor |
Mesaj |
carco
Data înscrierii: 27/Mai/2004
Mesaje: 2796
Locație: Bucuresti
|
| Trimis: Lun Noi 28, 2005 9:52 pm Titlul subiectului: Select imbarligat |
|
|
Vreau sa extrag "restantele" dintr-o tabela "debts" legata de clients prin client_id iar platile sunt in payments, coloana payment.
Cod:
SELECT
debts.*,
IF (clients.id IS NULL,'unknown',clients.client) AS client,
sum( IF(payments.debt_id IS NULL,0,payments.payment )) AS payments,
debt-(sum(IF(payments.debt_id IS NULL,0,payments.payment ))) AS rest
FROM debts
LEFT JOIN payments ON debts.id = payments.debt_id
LEFT JOIN clients ON debts.client_id = clients.id
GROUP BY debts.id
HAVING rest>0
ORDER BY overdue
Se poate scrie mai elegant bazaconia de mai sus?
Ma enerveaza ca nu pot scrie "debt-payments AS rest" si ca sum(NULL) nu mi-l ia ca 0 deci nu pot pune debt - sum(payments.payment) |
|
| Sus |
|
strategy
Data înscrierii: 19/Noi/2004
Mesaje: 351
Locație: Oradea
|
| Trimis: Mar Noi 29, 2005 7:09 am Titlul subiectului: |
|
|
alt select si mai imbarligat. 2 tabele:
1. categ: cod_prod, denum
2. fact: dat_fact, cod_prod, cant
mai multe coduri fac parte din aceasi categorie ..
cerinta: vreau sa scot in functie de data pe care o introduc io suma de fact.cant pe fiecare saptamana, 6 saptamani in urma si total.
ce nu prea pot io inca pricepe ii cum sa pun conditia de data pe fiecare suma in parte :( |
|
| Sus |
|
PHPRomania Bot
Bot Member
Data înscrierii: 27/Dec/2007
Mesaje: 1
Locaţie: Server Google |
| Trimis: Mie Dec 26, 2007 7:01 pm Titlul subiectului: Ad |
|
|
|
|
|
| Sus |
|
| |
|