Toon posts:

SQL in MS Acces database

Pagina: 1
Acties:
  • 53 views sinds 30-01-2008

Verwijderd

Topicstarter
Beste tweakers! Ik ben bezig met een database maken en ik moet hetvolgende doen.. Ik heb een lijst met leerlingen en punten en dan moet ik van een vak het laagste punt hebben dat lukt nog wel maar dan moet ik ook weten welke leerling dat punt heeft en dat krijg ik er niet bij kan iemand mij helpen..

Ik heb hetvolgende nu in sql

SELECT DISTINCTROW Avg([cijferlijst].[Engels]) AS [Gem Van Engels], Min([cijferlijst].[Engels]) AS [Min Van Engels], Max([cijferlijst].[Engels]) AS [Max Van Engels]
FROM cijferlijst;

Nu krijg ik van het vak engels het gemiddelde van alle punten hoogste en laagste punt...

Nu moet ik dus apart weten welke leerling het laagste punt heeft..

Alvast bedankt

  • whoami
  • Registratie: December 2000
  • Laatst online: 16:53
Kijk eens naar de GROUP BY clausule in een goeie SQL tutorial.

https://fgheysels.github.io/


  • justmental
  • Registratie: April 2000
  • Niet online

justmental

my heart, the beat

Je hebt een subquery nodig (iets te snel whoami :P )

Denk in de trant van: selecteer leerling van cijferlijst waar punt = (selecteer minimale punt ... )

Who is John Galt?


  • NMe
  • Registratie: Februari 2004
  • Laatst online: 24-05 14:53

NMe

Quia Ego Sic Dico.

Hier kunnen we vrij weinig mee he, als je je datamodel niet post... :/

'E's fighting in there!' he stuttered, grabbing the captain's arm.
'All by himself?' said the captain.
'No, with everyone!' shouted Nobby, hopping from one foot to the other.


  • cameodski
  • Registratie: Augustus 2002
  • Laatst online: 06-11-2023
Verwijderd schreef op 02 juni 2004 @ 13:36:
Nu moet ik dus apart weten welke leerling het laagste punt heeft..
En als nu twee leerlingen de laatste plaats delen en dus beiden even laag hebben?

Never underestimate the power of


  • whoami
  • Registratie: December 2000
  • Laatst online: 16:53
justmental schreef op 02 juni 2004 @ 13:45:
Je hebt een subquery nodig (iets te snel whoami :P )

Denk in de trant van: selecteer leerling van cijferlijst waar punt = (selecteer minimale punt ... )
Waarom denk je dat ?

code:
1
2
3
4
5
select min(punten), leerling
FROM puntenlijst, leerling
WHERE puntenlijst.leerling_id = leerling.leerling_id
AND puntenlijst.vak_id = 2
GROUP BY leerling


We kennen natuurlijk het datamodel niet.

https://fgheysels.github.io/


  • justmental
  • Registratie: April 2000
  • Niet online

justmental

my heart, the beat

whoami schreef op 02 juni 2004 @ 13:49:
Waarom denk je dat ?

code:
1
2
3
4
5
select min(punten), leerling
FROM puntenlijst, leerling
WHERE puntenlijst.leerling_id = leerling.leerling_id
AND puntenlijst.vak_id = 2
GROUP BY leerling


We kennen natuurlijk het datamodel niet.
Dat is het laagste punt per leerling, volgens mij wil ie de leerling met het laagste punt.

Who is John Galt?


  • cameodski
  • Registratie: Augustus 2002
  • Laatst online: 06-11-2023
whoami schreef op 02 juni 2004 @ 13:49:
[...]


Waarom denk je dat ?

code:
1
2
3
4
5
select min(punten), leerling
FROM puntenlijst, leerling
WHERE puntenlijst.leerling_id = leerling.leerling_id
AND puntenlijst.vak_id = 2
GROUP BY leerling


We kennen natuurlijk het datamodel niet.
Mmm, dan krijg je per leerling het laagste cijfer en dat is imho niet de bedoeling.

Enne, dat datamodel is op de leerling na toch wel af te leiden uit de startpost? Ziet er trouwens naar uit dat er per vak een aparte kolom is en dat vind ik persoonlijk niet zo fraai.

Never underestimate the power of


  • Creepy
  • Registratie: Juni 2001
  • Laatst online: 17:56

Creepy

Tactical Espionage Splatterer

justmental schreef op 02 juni 2004 @ 13:51:
[...]

Dat is het laagste punt per leerling, volgens mij wil ie de leerling met het laagste punt.
Dan voeg je een HAVING toe ;)

"I had a problem, I solved it with regular expressions. Now I have two problems". That's shows a lack of appreciation for regular expressions: "I know have _star_ problems" --Kevlin Henney


Verwijderd

Topicstarter
Ik heb de volgende tabbellen gekoppeld

Leerlinginfo en cijferlijst

ik heb in het tabel leerlinginfo een kolom met leerlingnamen die moeten worden gezien bij het laagste punt

Verwijderd

Topicstarter
select min(punten), leerling
FROM puntenlijst, leerling
WHERE puntenlijst.leerling_id = leerling.leerling_id
AND puntenlijst.vak_id = 2
GROUP BY leerling

Dit heb ik gedaan.. puntenlijst veranded in cijferlijst...

Maar dan vraag ik me af? leerling moet naam worden maar die komt uit een andere tabel.. uit de tabel leerlinginfo

hij geeft aan fout jet blabla

  • Peetman
  • Registratie: Oktober 2001
  • Laatst online: 18:20

Peetman

Tjah....

Verwijderd schreef op 02 juni 2004 @ 13:58:
select min(punten), leerling
FROM puntenlijst, leerling
WHERE puntenlijst.leerling_id = leerling.leerling_id
AND puntenlijst.vak_id = 2
GROUP BY leerling

Dit heb ik gedaan.. puntenlijst veranded in cijferlijst...

Maar dan vraag ik me af? leerling moet naam worden maar die komt uit een andere tabel.. uit de tabel leerlinginfo

hij geeft aan fout jet blabla
En die blabla is nou altijd het interessante gedeelte :) post dat is

  • Kristof
  • Registratie: Januari 2002
  • Laatst online: 09-04 17:34

Kristof

is een Belgisch product

Waarom moeilijk maken?

code:
1
2
3
4
5
6
7
SELECT leerling 
FROM cijferlijst, leerling 
WHERE cijferlijst.leerling_id = leerling.leerling_id and cijferlijst.engels = 
(
  SELECT Min([cijferlijst].[Engels])
  FROM cijferlijst
);

"You can get more with a kind word and a gun than you can with a kind word alone." - Al Capone


  • cameodski
  • Registratie: Augustus 2002
  • Laatst online: 06-11-2023
Creepy schreef op 02 juni 2004 @ 13:55:
[...]

Dan voeg je een HAVING toe ;)
Ja, en :?
Ik denk niet dat dat gaat werken.
Verwijderd schreef op 02 juni 2004 @ 13:58:
select min(punten), leerling
FROM puntenlijst, leerling
WHERE puntenlijst.leerling_id = leerling.leerling_id
AND puntenlijst.vak_id = 2
GROUP BY leerling

Dit heb ik gedaan.. puntenlijst veranded in cijferlijst...

Maar dan vraag ik me af? leerling moet naam worden maar die komt uit een andere tabel.. uit de tabel leerlinginfo

hij geeft aan fout jet blabla
Misschien komt dat door het ontbreken van een alias. Dus
code:
1
min(punten)

vervangen door
code:
1
min(punten) as laagste

Overigens is dit niet de query waar je naar op zoek bent.

Never underestimate the power of


Verwijderd

Topicstarter
nu gooi ik alles door mekaar... :S

Kan iemand nie een script maken met de goede namen erin want slaat leerling op de tabel of kolom

ik heb het tabel cijferlijst daarin staan alle vakken en cijfers...

dan heb ik een tabel leerlinginfo en de naam van de leerling is als volgt gedaan

Leerling nummer (deze is gekoppeld aan de andere tabel cijferlijst..)
naam (naam van de leerling)

  • cameodski
  • Registratie: Augustus 2002
  • Laatst online: 06-11-2023
Kun je anders eerst niet even laten zien, wat je precies voor resultaten terug wilt hebben, want in de topicstart gebruik je ook nog AVG en MAX.
Moet je nu een lijst van alle leerlingen, van eentje of van enkele?

Never underestimate the power of


  • Kristof
  • Registratie: Januari 2002
  • Laatst online: 09-04 17:34

Kristof

is een Belgisch product

Ik neem aan dat je wel iets van SQL weet (of kan opzoeken) zodat je weet waar je een kolomnaam en waar een tabelnaam kan verwachten...
We kunnen het moeilijk helemaal voorknauwen voor jou he!
Het zou ook handiger zijn, moest je in het vervolg even een datmodel geven, zodat we een beter inzicht hebben.
Nu goed, nog 1 keer:

code:
1
2
3
4
5
6
7
SELECT leerlinginfo.naam 
FROM cijferlijst, leerlinginfo
WHERE cijferlijst.leerling_id = leerlinginfo.leerling_id and cijferlijst.engels = 
(
  SELECT Min([cijferlijst].[Engels])
  FROM cijferlijst
);


leerling_ID kan je zelf nog even vertalen naar de juiste veldnaam?

"You can get more with a kind word and a gun than you can with a kind word alone." - Al Capone


Verwijderd

Topicstarter
gelukt :)

Allen hartstikke bedankt!! _/-\o_

  • cameodski
  • Registratie: Augustus 2002
  • Laatst online: 06-11-2023
Verwijderd schreef op 02 juni 2004 @ 14:55:
gelukt :)

Allen hartstikke bedankt!! _/-\o_
En hoe heb je het nou opgelost met je AVG en MAX :?
Maw: welke query is het nu uiteindelijke geworden?

Never underestimate the power of


  • gorgi_19
  • Registratie: Mei 2002
  • Laatst online: 16:59

gorgi_19

Kruimeltjes zijn weer op :9

Verwijderd schreef op 02 juni 2004 @ 14:45:
Kan iemand nie een script maken met de goede namen erin want slaat leerling op de tabel of kolom
Script request doen we niet aan in Programming & Webscripting, zie ook P&W FAQ - Scriptrequests

Sk8OrDie, kan je volgende keer een duidelijkere topictitle ook kiezen? :)

Anyway; de rest moet verder ook wel te vinden zijn in een goede SQL tutorial of handleiding. Deze gaat in ieder geval dicht.

[ Voor 9% gewijzigd door gorgi_19 op 02-06-2004 15:04 ]

Digitaal onderwijsmateriaal, leermateriaal voor hbo

Pagina: 1

Dit topic is gesloten.