sql joinen
Ik heb het ooit in school geleerd, maar was maar 3 weken theorie en alweer eeuwen geleden.
Ik ben terug herbegonnen met php om voor mezelf een eenvoudige database aan te maken.
Ik ben momenteel tevreden over het visuele gedeelte (in de code die erachter zit vind een kat haar eigen jong niet in terug). Maar dat is dat.
Ik zit momenteel echter te sukkelen met mijn sql, 3 tabellen.
Hey besten mensen...
Ik heb het ooit in school geleerd, maar was maar 3 weken theorie en alweer eeuwen geleden.
Ik ben terug herbegonnen met php om voor mezelf een eenvoudige database aan te maken.
Ik ben momenteel tevreden over het visuele gedeelte (in de code die erachter zit vind een kat haar eigen jong niet in terug). Maar dat is dat.
Ik zit momenteel echter te sukkelen met mijn sql, 3 tabellen.
De database is als volgt opgebouwd:
De inhoud zou er als volgt uitzien ongeveer...
Uit deze tabel zou ik het volgende willen halen:
Iedere tegenpartij met zijn overeenkomstige ammount, waar direction "O" is.
Het is me gelukt om afzonderlijk de gegevens er uit te halen (van bepaald tegenpartij.ID)... maar zou deze in 1 query willen doen maar geraak er niet uit.
Kan er iemand mij hierbij helpen, of op weg zetten? Ik dacht aan een join, maar daar ben ik helemaal niet goed in... en weet dat er ergens een count in moet... maar dat lukt me toch nog niet zo goed.
Gewijzigd op 27/03/2015 17:46:08 door Maarten M
Je hebt inderdaad een JOIN nodig en een GROUP BY in combinatie met de SUM functie:
Code (php)
1
2
3
4
5
6
7
8
9
10
11
2
3
4
5
6
7
8
9
10
11
SELECT
t.tegenpartij
IFNULL(SUM(c.amount), 0) totaal
FROM
tegenpartijen t
LEFT JOIN
vw
ON t.id = vw.tegenpartij
LEFT JOIN
cashflow c
ON vw.cashflow = c.id AND direction = 'O'
t.tegenpartij
IFNULL(SUM(c.amount), 0) totaal
FROM
tegenpartijen t
LEFT JOIN
vw
ON t.id = vw.tegenpartij
LEFT JOIN
cashflow c
ON vw.cashflow = c.id AND direction = 'O'
Hiermee krijg je alle tegenpartijen, ook degenen waaraan niets is betaald (met 0 als totaal)
Gewijzigd op 27/03/2015 18:29:27 door Ger van Steenderen