Acces overzicht zonder ANY operator

Status
Niet open voor verdere reacties.

PatrickSt

Gebruiker
Lid geworden
1 okt 2010
Berichten
38
Hallo, de vraag die ik in het vorige topic stelde heb ik zelf kunnen oplossen maar nu moet ik het zelfde doen dus de cursisten en cijfers laten zien die een hoger cijfer hebben gehaald dan het laagste cijfer van cursistnr 88 en hij mag er zelf niet bij zitten,
alleen nu moet ik het doen zonder de ANY operator ik kom er niet uit hoe ik dat moet doen.

Groeten,
Patrick
 
gebruik een subselect
zoiets als
Select balblbala Where ... IN (Select bablbalb WHERE cursisnr <> 88)
 
Riekt toch wel erg naar een school/huiswerk vraag ;)
 
Als ik het probeer hoe jij het zegt

Code:
SELECT cursistnr, cijfer FROM c_regel1 WHERE cijfer IN (SELECT cijfer FROM c_regel1 WHERE cursistnr <> 88)

Dan krijg ik de uitvoer
Code:
cursistnr	cijfer
2	6
64	8
88	9
14	6
2	9
14	5

en wat nou de bedoeling is dat hij alleen laat zien van welke personen hoger hebben gehaald dan het laagste cijfer van 88 dus de uitvoer moet zijn,
Code:
cursistnr	cijfer
64	8
2	9

en dat krijg ik niet voor elkaar....
 
Klopt dat is het ook het is een school opdracht maar desalniettemin kun je mij toch wel helpen?:confused::eek:
 
wat ik begrijp is dus cursist 88 heeft een cijfer dus bijv. 7 en nu moet je alle cursisten hebben die een cijfer lager dan een 7(cijfer cusist 88) hebben???
 
Ja oké goed, maar ik zet het hier toch niet neer en dat jullie het dan maar moeten maken? ik probeer eerst zelf wat en vaak kom ik ook wel ergens maar zoals de kleine dingentjes die red ik dan niet in mn eentje, maar als je me niet wil helpen respecteer ik je besluit en dan sluit je dit topic maar.....
 
wat ik begrijp is dus cursist 88 heeft een cijfer dus bijv. 7 en nu moet je alle cursisten hebben die een cijfer lager dan een 7(cijfer cusist 88) hebben???

nee, net andersom, het laagste cijfer van cursist 88 is een 7, nou hebben 2 cursisten hogere cijfers gehaald dan die 7 namelijk cursist 64 een 8 en cursist 2 en 9, daar moet ik een query voor maken en zoals die nu is
Code:
SELECT cursistnr, cijfer 
FROM c_regel1 
WHERE cijfer IN
(SELECT cijfer FROM c_regel1 WHERE cursistnr = 88)
AND NOT cursistnr = 88;
geeft hij alleen de 9 van cursist 2 weer en de 8 van cursist 64 moet er ook bij, ik heb geen flauw idee hoe ik die ook te voorschijn haal
 
ik weet niet of dit werkt maar probeer dit eens

[SQL]
SELECT cursistnr, cijfer
FROM c_regel1
WHERE cijfer > (SELECT cijfer FROM c_regel1 WHERE cursistnr = 88)
AND NOT cursistnr = 88;
[/SQL]
 
Die werkt niet omdat de subquery maar maximaal één record als resultaat mag hebben, dus dat gaat niet lukken, omdat je die > groter dan operator gebruik, als je een operator gebruikt zoals ANY / IN enz. dan mag die wel meerder records als resultaat hebben volgens mij.
 
Kijk, nu heb je lang genoeg gedooold ;)
de cursisten en cijfers laten zien die een hoger cijfer hebben gehaald dan het laagste cijfer van cursistnr 88 en hij mag er zelf niet bij zitten

Dit levert je resultaat op.
Code:
SELECT C1.CURSISTNR, C1.CIJFER
FROM c_regel1 AS C1
WHERE ((C1.CURSISTNR<>88) AND (C1.CIJFER>=(SELECT MIN([cijfer]) FROM C_REGEL1 WHERE cursistnr=88)))
ORDER BY C1.CURSISTNR, C1.CIJFER;
 
Oké vriendelijk bedankt maar als ik het goed lees maak je gebruik van twee sub querys?

De eerste na WHERE en dan de tweede na AND cijfer >?
 
Het is nog steeds één subquery. Plak 'm in een nieuwe query, en dan zie je denk ik wel hoe hij werkt. De Alias C1 is waarschijnlijk niet nodig; een restant van een andere aanpak. Al houdt-ie de code wel klein.
 
Status
Niet open voor verdere reacties.
Terug
Bovenaan Onderaan