Piecemaker
Legacy Member
kheb een probleempje met een query.
Ik heb in mn DB de volgende tabellen:
Rekeningen (RekeningID, Datum)
Behandelingen_Rekeningen (RekeningID, BehandelingID, Prijs)
Behandelingen (BehandelingID, Behandelingnaam, .....)
In mijn functie geef ik jaar en datum mee als parameters en dan zou die functie alle behandelingen moeten teruggeven met hun bijhorende prijs.
Dit is mijn functie tot hier toe:
En dit krijg ik nu als uitvoer:
behandeling1 5 €
behandeling1 5 €
behandeling1 7 €
behandeling2 12 €
behandeling2 14€
behandeling2 14€
behandeling2 14€
.....
Nu wil daar het volgende van maken:
2 x behandeling1 5 €
1 x behandeling1 7 €
1 x behandeling2 12 €
3 x behandeling2 14 €
Ik heb al vanalles geprobeerd met een count maar ik krijg het niet voor mekaar.
Ik kan dit natuurlijk gewoon in de uitvoer aanpassen, maar ik zou dit liever direct al in de query doen.
Ik heb in mn DB de volgende tabellen:
Rekeningen (RekeningID, Datum)
Behandelingen_Rekeningen (RekeningID, BehandelingID, Prijs)
Behandelingen (BehandelingID, Behandelingnaam, .....)
In mijn functie geef ik jaar en datum mee als parameters en dan zou die functie alle behandelingen moeten teruggeven met hun bijhorende prijs.
Dit is mijn functie tot hier toe:
Code:
Public Shared Function test(ByVal maand As Integer, ByVal jaar As Integer) As SqlDataReader
Dim con As SqlConnection
Dim cmd As SqlCommand
Try
con = New SqlConnection(My.Settings.bellezaDBConnectionString)
cmd = New SqlCommand("SELECT Behandelingen.Behandelingnaam, Behandelingen_Rekeningen.Prijs " & _
"FROM Behandelingen, Rekeningen, Behandelingen_Rekeningen " & _
"WHERE Rekeningen.RekeningID=Behandelingen_Rekeningen.RekeningID AND " & _
"Behandelingen_Rekeningen.BehandelingID=Behandelingen.BehandelingID AND " & _
"MONTH (Rekeningen.Datum) = @maand AND " & _
"YEAR (Rekeningen.Datum) = @jaar " & _
"ORDER BY Behandelingen.Behandelingnaam", con)
cmd.Parameters.Add(New SqlParameter("@maand", maand))
cmd.Parameters.Add(New SqlParameter("@jaar", jaar))
con.Open()
Return cmd.ExecuteReader(CommandBehavior.CloseConnection)
Catch ex As Exception
MessageBox.Show(ex.Message)
Return Nothing
End Try
End Function
En dit krijg ik nu als uitvoer:
behandeling1 5 €
behandeling1 5 €
behandeling1 7 €
behandeling2 12 €
behandeling2 14€
behandeling2 14€
behandeling2 14€
.....
Nu wil daar het volgende van maken:
2 x behandeling1 5 €
1 x behandeling1 7 €
1 x behandeling2 12 €
3 x behandeling2 14 €
Ik heb al vanalles geprobeerd met een count maar ik krijg het niet voor mekaar.
Ik kan dit natuurlijk gewoon in de uitvoer aanpassen, maar ik zou dit liever direct al in de query doen.

.