Scholieren.com forum

Scholieren.com forum (https://forum.scholieren.com/index.php)
-   Software & Hardware (https://forum.scholieren.com/forumdisplay.php?f=20)
-   -   [DB] Hulp bij SQL (https://forum.scholieren.com/showthread.php?t=1031289)

appiegogogo 02-12-2004 15:31

SQL- moelijkkkkkkkkkk
 
hallo iedereen,

mag je een functie plaatsen achter een "WHERE" in SQL, dus bijvoorbeeld


.......
......
WHERE COUNT(*);


en mijn tweede vraag gaat over het volgende probleem:
Stel dat we een tabel hebben met 1 kolom genaamd "cijfers", deze tabel bevat 20 cijfers van een student voor een bepaalde vak, nu willen we met behulp van SQL de 5 hoogste cijfers weergeven op het scherm, hoe moet DIT......



alvast bedankt,


Appieeeeeeee

Koen 02-12-2004 15:37

Citaat:

appiegogogo schreef op 02-12-2004 @ 16:31 :
hallo iedereen,

mag je een functie plaatsen achter een "WHERE" in SQL, dus bijvoorbeeld


.......
......
WHERE COUNT(*);

Volgens mij wel, not sure. Wat heb je geprobeerd?

Citaat:


en mijn tweede vraag gaat over het volgende probleem:
Stel dat we een tabel hebben met 1 kolom genaamd "cijfers", deze tabel bevat 20 cijfers van een student voor een bepaalde vak, nu willen we met behulp van SQL de 5 hoogste cijfers weergeven op het scherm, hoe moet DIT......

alvast bedankt,


Appieeeeeeee

SELECT cijfers FROM tabel ORDER BY cijfers DESC LIMIT 0,5

eXo 02-12-2004 16:12

Dat laatste snap ik niet, een tabel met 1 kolom met cijfers. Dat zou dus betekenen dat je maar voor 1 leerling de cijfers kan opslaan? Of voor elke leerling een tabel maken, dat lijkt me niet echt handig.

Fade of Light 02-12-2004 16:17

Nee, in het WHERE gedeelte mag je geen Count gebruiken, volgens mij...

ik dacht dat je daarbij having moest gebruiken.

edit: al slaat het natuurlijk als een lul op een drumstel om gewoon "count" te doen...je moet wel met iets vergelijken he..

Fade of Light 02-12-2004 16:19

Citaat:

eXo schreef op 02-12-2004 @ 17:12 :
Dat laatste snap ik niet, een tabel met 1 kolom met cijfers. Dat zou dus betekenen dat je maar voor 1 leerling de cijfers kan opslaan? Of voor elke leerling een tabel maken, dat lijkt me niet echt handig.
Tabel cijfers = { studentid, cijfer1, cijfer2,..., cijfer20 }

Lethalis 02-12-2004 19:23

1) Hiervoor heb je de prachtige GROUP BY / HAVING.

2) SELECT TOP 5 * FROM cijfers_tabel ORDER BY cijfers DESC

McMotion 02-12-2004 23:18

hij heeft het toch niet over groeperen? gewoon where dus :) en daarin mag je functies gebruiken ja

eddie 03-12-2004 07:34

Citaat:

Fade of Light schreef op 02-12-2004 @ 17:19 :
Tabel cijfers = { studentid, cijfer1, cijfer2,..., cijfer20 }
Dat lijkt me niet handig...

Voor de rest: Zie ********

Lethalis 03-12-2004 08:37

Citaat:

McMotion schreef op 03-12-2004 @ 00:18 :
hij heeft het toch niet over groeperen? gewoon where dus :) en daarin mag je functies gebruiken ja
Het heeft weinig nut een COUNT(*) te gebruiken in een WHERE.

COUNT() is een aggregate function, bedoeld om op groepjes van records uit te voeren.

Fade of Light 03-12-2004 12:22

Citaat:

eddie schreef op 03-12-2004 @ 08:34 :
Dat lijkt me niet handig...

Voor de rest: Zie ********

Wat dan?
Tabel Cijfers = {studentid, vak, cijfer } ?

eddie 03-12-2004 12:37

Citaat:

Fade of Light schreef op 03-12-2004 @ 13:22 :
Wat dan?
Tabel Cijfers = {studentid, vak, cijfer } ?

Dat lijkt er al meer op.
Want een student krijg een cijfer voor een vak.

Cijfer = { studentid, vakid, cijfer}
Vak = { vakid, vaknaam, leraarid } (een vak wordt gegeven door een leraar)

Fade of Light 03-12-2004 13:30

Citaat:

eddie schreef op 03-12-2004 @ 13:37 :
Dat lijkt er al meer op.
Want een student krijg een cijfer voor een vak.

Cijfer = { studentid, vakid, cijfer}
Vak = { vakid, vaknaam, leraarid } (een vak wordt gegeven door een leraar)

Zo zou ik het over het algemeen ook doen, maaar... als dat vak er verder niet toe doet, behalve de naam, dan zou je gewoon
Cijfer = { studentid, cijfer1,cijfer2....,cijfer20 }
kunnen hanteren, als je een consistente volgorde aanhoudt.

eddie 03-12-2004 14:15

Alleen is het dan moeilijk om het hoogste cijfer te bepalen; mag je alle velden gaan vergelijken :s

Dan is een select max(cijfer) toch makkelijker.

Fade of Light 03-12-2004 14:31

Citaat:

eddie schreef op 03-12-2004 @ 15:15 :
Alleen is het dan moeilijk om het hoogste cijfer te bepalen; mag je alle velden gaan vergelijken :s

Dan is een select max(cijfer) toch makkelijker.

Mijn fout....had het oorspronkelijke bericht genegeerd ;) Als je het maximum wil bepalen is het inderdaad slimmer om het los te doen.


Alle tijden zijn GMT +1. Het is nu 10:33.

Powered by vBulletin® Version 3.8.8
Copyright ©2000 - 2025, Jelsoft Enterprises Ltd.