Toon posts:

GROUP BY probleem (SQL)

Pagina: 1
Acties:

Verwijderd

Topicstarter
Hallo,

Ik heb een vraagje over een sql query

SELECT bonus.verkopernr, count( * ) AS Aantal_Bonussen
FROM bonus
GROUP BY bonus.verkopernr
HAVING Count( * )>1;

Deze werkt, ik wil hier alleen gegevens uit andere tabellen bijvoegen. In die andere tabellen staat dus allemaal het verkopernr. bijvb

SELECT bonus.verkopernr, persoonlijkegegevens.*, count( * ) AS Aantal_Bonussen
FROM bonus, persoonlijkegegevens
WHERE persoonlijkegegevens.verkopernr=bonus.verkopernr
GROUP BY bonus.verkopernr
HAVING Count( * )>1;

Dit werkt dus niet, Access geeft een error en zegt dat je bij GROUP BY geen '*' mag gebruiken.
Dit kan je oplossen door alle aparte kolommen in te gaan voeren, maar hier heb ik weinig zin in.
Weet iemand hier een oplossing voor?

Verwijderd

Hier is geen mooie oplossing voor, want je verkracht een beetje het concept van de group by. Ik zou er twee queries van maken:
code:
1
2
3
4
5
strSQL_bonus = _
   "SELECT verkopernr, Count(verkopernr) " & _
   "FROM bonus " & _
   "GROUP BY verkopernr " & _
   "HAVING Count(verkopernr)>1"

Vervolgens zet je deze met .GetRows in een array. Dan maak je een string met alle gevonden verkopernr's, gscheiden door komma's in bijv. strVerkoperNrs en doe je de tweede query:
code:
1
2
3
4
5
strSQL_verkopers = _
   "SELECT * " & _
   "FROM persoonlijkegegevens " & _
   "WHERE verkopernr IN [" & strVerkoperNrs & "]" & _
   "ORDER BY verkopernr"

Als je deze ook met .GetRows in een array zet, heb je twee arrays met gerelateerde data in eenzelfde volgorde.

HTH :)

  • kvdveer
  • Registratie: November 2000
  • Laatst online: 06-11-2025

kvdveer

Z.O.Z.

je kunt ook persoonlijkegegevens.* vervangen door alle velden die je nodig hebt uit de tabel persoonlijkegegevens. Deze velden moet je dan ook nog een toevoegen aan de goupby clause.

Localhost, sweet localhost


Verwijderd

Topicstarter
Ja idd, ik heb alle velden nu apart ingevoerd.

Bedankt voor jullie snelle reacties!