[SQL/Access] query group by

Pagina: 1
Acties:

  • Remco
  • Registratie: Januari 2001
  • Laatst online: 20-04 08:25
Ik heb de volgende tabel in Access die ik via VB.Net wil queriën.
Er zit wel meer in, maar het gaat om de volgende kolommen:

call_datum, call_kenteken
1-12-2005 , 12-34-AB
1-12-2005 , 34-56-CD
1-12-2005 , 12-34-AB
1-12-2005 , 12-34-AB
2-12-2005 , 12-34-AB

Ik wil graag weten hoeveel kentekens er per dag behandelt zijn.
Simpel zat op zich, ware het niet dat een kenteken meerdere keren per dag geregistreerd kunnen worden.
En ik wil niet weten hoeveel calls er op een dag zijn aangemaakt, maar hoeveel verschillende kentekens er zijn behandelt.

De uitkomst met bovenstaande gegevens moet worden:
1-12-2005 , 2
2-12-2005 , 1

Nu heb ik al veel queries geprobeerd, maar ik krijg het maar niet voor elkaar.
Met deze query:
code:
1
2
3
SELECT t_calls.call_datum, t_calls.call_kenteken
FROM t_calls
GROUP BY t_calls.call_datum, t_calls.call_kenteken;

Krijg ik de unieke kentekens per dag.
Dat is op zich goed, als ik nogmaals de datum kan groeperen en tellen.

Ik zit er nu al een tijdje op te piekeren, en te proberen, maar ik zie het gewoon niet.
Uiteraard heb ik op google gezocht, en in de help van Access gekeken, maar ik weet eigenlijk ook niet zo goed waarop ik moet zoeken.
Ja, uiteraard op group by, maar dat schiet niet op....

wie kan mij een beetje de goede weg op helpen ?

The best thing about UDP jokes is that I don't care if you get them or not.


  • kenneth
  • Registratie: September 2001
  • Niet online

kenneth

achter de duinen

Je moet niet groeperen op kenteken, maar de COUNT ervan bepalen.

Look, runners deal in discomfort. After you get past a certain point, that’s all there really is. There is no finesse here.


  • Remco
  • Registratie: Januari 2001
  • Laatst online: 20-04 08:25
kenneth schreef op maandag 02 januari 2006 @ 22:07:
Je moet niet groeperen op kenteken, maar de COUNT ervan bepalen.
Dan krijg ik het aantal kentekens per dag.
Dat wil ik niet, ik wil het aantal unieke kentekens per dag.
Dus eigenlijk eerst een group by op datum en kenteken.
Hieroverheen nog een keer een group by op datum.
Maar ik weet niet hoe ik dat voor elkaar moet krijgen.

The best thing about UDP jokes is that I don't care if you get them or not.


  • kenneth
  • Registratie: September 2001
  • Niet online

kenneth

achter de duinen

COUNT DISTINCT?

Look, runners deal in discomfort. After you get past a certain point, that’s all there really is. There is no finesse here.


  • MichielPH
  • Registratie: Februari 2005
  • Laatst online: 02-04 21:03
Al je deze 2 query's gebruikt krijg je het gewenste resultaat.

Query1:
code:
1
2
3
SELECT Tabel1.Datum, Tabel1.Kenteken
FROM Tabel1
GROUP BY Tabel1.Datum, Tabel1.Kenteken;
Uiteindelijke query:
code:
1
2
3
SELECT Query1.Datum, Count(Query1.Kenteken) AS AantalVanKenteken
FROM Query1
GROUP BY Query1.Datum;


Hoe je dit als 1 query schrijft weet ik niet, er is vast wel eimand die dat wel weet?

  • kenneth
  • Registratie: September 2001
  • Niet online

kenneth

achter de duinen

Look, runners deal in discomfort. After you get past a certain point, that’s all there really is. There is no finesse here.


  • Remco
  • Registratie: Januari 2001
  • Laatst online: 20-04 08:25
Ik krijg inderdaad wel de gegevens die ik moet hebben, maar heb nog geen count kunnen krijgen op de datum.
Ik heb nu 2 queries:
code:
1
2
3
SELECT DISTINCT t_calls.call_datum, t_calls.call_kenteken
FROM t_calls
GROUP BY t_calls.call_datum, call_kenteken;

en
code:
1
2
3
SELECT Query1.call_datum, Count(Query1.call_datum) AS AantalVancall_datum
FROM Query1
GROUP BY Query1.call_datum;

Ik heb door middel van union deze proberen te koppelen, maar dat lukt me niet erg.

zie nu dat MichielPH ook al met deze oplossing kwam

@Kenneth:
Ik zal nog eens wat rommelen met distinct....
Maar ik heb het licht nog niet gezien

[ Voor 14% gewijzigd door Remco op 03-01-2006 16:01 . Reden: MichielPH ]

The best thing about UDP jokes is that I don't care if you get them or not.


  • kenneth
  • Registratie: September 2001
  • Niet online

kenneth

achter de duinen

SQL:
1
2
3
SELECT datum, COUNT(DISTINCT kenteken)
FROM calls
GROUP BY datum

Look, runners deal in discomfort. After you get past a certain point, that’s all there really is. There is no finesse here.


  • Kalin848
  • Registratie: November 2005
  • Laatst online: 02-01 07:59
Wat dacht je van:


code:
1
2
3
4
SELECT DIST.Datum, Count(1) AS Expr1
FROM [SELECT DISTINCT Datum, Kenteken
FROM Tabel1]. AS DIST
GROUP BY DIST.Datum;


Greetz,

Kalin

  • Remco
  • Registratie: Januari 2001
  • Laatst online: 20-04 08:25
kenneth schreef op dinsdag 03 januari 2006 @ 16:11:
SQL:
1
2
3
SELECT datum, COUNT(DISTINCT kenteken)
FROM calls
GROUP BY datum
Ik ben er inmiddels achter dat Access geen count(distinct ) ondersteund....
Dus dit gaat niet werken.

The best thing about UDP jokes is that I don't care if you get them or not.


  • Remco
  • Registratie: Januari 2001
  • Laatst online: 20-04 08:25
Mag ik iedereen van harte bedanken, en dan met name Kalin.
Door middel van mijn 2 bovenstaande queries samen te voegen aan de hand van Kalin zijn code en nog wat te rommelen ben ik er uit.
code:
1
2
3
4
SELECT qtemp.call_datum, Count(qtemp.call_datum) AS AantalVancall_datum
FROM (SELECT DISTINCT t_calls.call_datum, t_calls.call_kenteken FROM t_calls 
GROUP BY t_calls.call_datum, call_kenteken) as qtemp
GROUP BY qtemp.call_datum;

[ Voor 5% gewijzigd door Remco op 03-01-2006 16:30 ]

The best thing about UDP jokes is that I don't care if you get them or not.

Pagina: 1