Toon posts:

[sql]query binnen access

Pagina: 1
Acties:

Verwijderd

Topicstarter
Ik heb de volgende Tabel: PHONELOG
Met de velden: TIJD, VAN, AAN, MINUTEN, SECONDEN

Nu wil ik, van ieder toestel afzonderlijk (VAN) :
-Het totaal aantal telefoontjes weten (AAN)

-Het aantal gedraaide mobiele nummers (AAN BETWEEN 600000000 AND 699999999 <- de eerste nul is weggelaten)
-Het aantal gedraaide vaste nummers

-Het totaal aantal minuten en seconden mobiele nummers
-Het totaal aantal minuten en seconden overige nummers

Kan dit binnen 1 query?
Zo ja, weet iemand hoe?

Ik heb nog niet zo heel veel ervaring met SQL
Ik kan wel per toestel een query maken maar volgens mij moet dat ook anders kunnen.

Ik kom namelijk niet verder dan dit soort querys:

code:
1
2
3
4
SELECT COUNT (aan) AS TOESTEL_125
FROM phonelog
WHERE van = '125'
AND aan BETWEEN 600000000 AND 699999999;

  • PrinsEdje80
  • Registratie: Oktober 2001
  • Laatst online: 01-01 15:26

PrinsEdje80

Holographic, not grated...

Iets met SUM heb ik uit andere topics begrepen...

Used to be Down Under... Foto gallery


Verwijderd

Topicstarter
De functie SUM ken ik wel, ik weet alleen niet hoe ik dit ga realiseren
Ik wil dus uiteindelijk een tabel (dmv een query) met de volgende elementen:

TOESTEL NR - AANTAAL 06 - AANTAL OVERIG - TIJDSDUUR 06 - TIJDSDUUR OVERIG

[ Voor 0% gewijzigd door Verwijderd op 25-09-2002 11:05 . Reden: type O ]


  • gorgi_19
  • Registratie: Mei 2002
  • Laatst online: 18:55

gorgi_19

Kruimeltjes zijn weer op :9

code:
1
2
3
4
SELECT Sum(PHONELOG.Minuten) AS SumOfMinuten, Sum(PHONELOG.Seconden) AS SumOfSeconden, Table1.Aan
FROM Table1
GROUP BY PHONELOG.Aan, PHONELOG.Van
HAVING (((PHONELOG.Van)>600000000 And (PHONELOG.Van)<699999999));

Geeft je wel een ideetje

De rest kan je nu wel zelf verzinnen.. :P

Tip: Kijk ook eens naar de Group By functie

Digitaal onderwijsmateriaal, leermateriaal voor hbo


Verwijderd

Topicstarter
Dat geeft me al wat inspiratie idd, maar ik krijg bij dit stukje:

code:
1
HAVING (((PHONELOG.Van)>600000000 And (PHONELOG.Van)<699999999))


de melding: data type mismatch in criteria expression

als de basis niet werkt kunnen we ook niet verder :P

  • gorgi_19
  • Registratie: Mei 2002
  • Laatst online: 18:55

gorgi_19

Kruimeltjes zijn weer op :9

Is je datatype van de velden VAN en AAN wel numeriek?

Digitaal onderwijsmateriaal, leermateriaal voor hbo


Verwijderd

Topicstarter
oops :D hehe
ik was vergeten het veld VAN om te zetten naar numeriek

Verwijderd

Topicstarter
okay: als ik dit uitvoer krijg ik een lege tabel:
code:
1
2
3
4
SELECT Sum(PHONELOG.Minuten) AS SumOfMinuten, Sum(PHONELOG.Seconden) AS SumOfSeconden, PHONELOG.Aan
FROM PHONELOG
GROUP BY PHONELOG.Aan, PHONELOG.Van
HAVING (((PHONELOG.Van)>600000000 And (PHONELOG.Van)<699999999));


dus ik dacht ik probeer het volgende even:
code:
1
2
3
4
SELECT Sum(PHONELOG.Minuten) AS SumOfMinuten, Sum(PHONELOG.Seconden) AS SumOfSeconden, PHONELOG.Aan, PHONELOG.Van
FROM PHONELOG
WHERE PHONELOG.AAN BETWEEN 600000000 AND 699999999
GROUP BY PHONELOG.Van, PHONELOG.Aan;


Dan krijg ik per 06-nummer het aantal minuten en seconden dat er naar gebeld is.

Ik wil dus eigenlijk dat er per toestel maar 1 regel staat, nu staat er voor ieder gesprek een regel.

voorbeeld:
SumOfMinuten - SumOfSeconden - aantal 06 nummers (count functie? ) - Van

Verwijderd

Topicstarter
nog even een probeerseltje:
code:
1
COUNT (PHONELOG.Aan) AS AantalGesprekken

in plaats van:
code:
1
PHONELOG.Aan


dan krijg ik het aantal gesprekken dat met 1 bepaald 06 nummer is gevoerd
dus nog steeds 1 regel per nummer :|

ik kom er niet echt uit

Verwijderd

Tip: als je alleen per Van wil zien, en niet per Van, Aan, dan moet je ook groeperen op allen Van, en niet op Van, Aan.

Succes :)

Verwijderd

SELECT Sum(PHONELOG.Minuten) AS SumOfMinuten, Sum(PHONELOG.Seconden) AS SumOfSeconden, PHONELOG.Aan
FROM PHONELOG
GROUP BY PHONELOG.Aan
HAVING (((PHONELOG.Aan)>600000000 And (PHONELOG.Aan)<699999999));

etc...

Verwijderd

Topicstarter
thanx! nu kan ik verder
Pagina: 1