Joins en groeperen Help!!
Ik kom er niet meer uit met een vraag wie kan mij hiermee helpen. Misschien heb ik wel de oplossing.
Ik heb 4 tabelen.
artikelen >a_nr, a_oms, a_pps
facturen >f_nr, f_dat, k_nr
klanten >k_nr, k_nm
regels >f_nr, f_regnr, o_best, o_aant, a_nr
Dit heb ik er van gemaakt.
SELECT k.k_nr as klantnr, k.k_nm as klantnaam, f.f_nr as factuurnr, r.o_best as orderbestelling, COUNT(DISTINCT r.o_aant), r.o_best*r.o_aant
FROM klanten k
JOIN facturen f
ON (f.k_nr = k.k_nr)
JOIN regels r
ON (f.f_nr = r.f_nr)
GROUP BY k.k_nm
ORDER BY r.o_best*r.o_aant DESC;
Maar ik denk dat ik hier iets niet handig doe.
Greetz
Gewijzigd op 21/05/2016 22:08:48 door Pink A
Kan ik jou prive mailen ik heb nog een paar andere vragen.
deze heb ik ook uitgewerkt maar weet niet of t klopt.
Liever hier in de groep, dan kan iedereen er van leren.
Zet het maar gewoon in dit topic neer, dan kunnen andere leden je misschien ook helpen.
geef factuurnummer, klantnaam, en factuurbedrag (het totale bedrag van alle orders op een factuur)
SELECT f.f_nr AS Factuurnr, k.k_nm AS Klantnaam, a.a_pps * r.o_aant, r.o_aant, a.a_pps
FROM Facturen f
JOIN Klanten k
ON (k.k_nr = f.k_nr)
JOIN fregels r
ON (r.f_nr = f.f_nr)
JOIN artikelen a
ON (a.a_nr = r.a_nr)
GROUP BY f.f_nr;
Gewijzigd op 21/05/2016 22:09:51 door Pink A
Als je een totaalbedrag wil, zul je ergens SUM moeten gebruiken. Waar zou dat moeten?
Er is alleen gevraagd om factuurnummer, klantnaam en totaalbedrag, waarom zou je dan meer in de select zetten?
Nog een tip: voor een goed resultaat moet je bij GROUP BY altijd alle velden noemen die niet SUM, MAX en COUNT of dergelijks als functie hebben. Nu doe je alleen GROUP BY of f_nr.
Oke, ik zal eens ff proberen.
Thanks!
Toevoeging op 21/05/2016 15:21:35:
En nu?? Klopt dit??
SELECT f.f_nr AS Factuurnr, k.k_nm AS Klantnaam, SUM(a.a_pps) AS Totaal
FROM Facturen f
JOIN Klanten k
ON (k.k_nr = f.k_nr)
JOIN Regels r
ON (r.f_nr = f.f_nr)
JOIN Artikelen a
ON (a.a_nr = r.a_nr)
GROUP BY f.f_nr, k.k_nm
ORDER BY SUM(a.a_pps);
Gewijzigd op 21/05/2016 16:22:10 door Pink A
Ik ken natuurlijk niet de betekenis van je velden, maar a_pps lijkt met prijs per stuk voor elk artikel.
Dat zul je waarschijnlijk nog moeten vermenigvuldigen met het aantal uit regels, zoals je ook in je origineel deed (van 14:42). En dat kan best binnen de SUM().