Access SQL - Sub Query
Hallo, Ik moet een sub query maken van de docenten die nog geen cursus hebben gegeven alleen ik kom er niet uit.
Ik dacht zelf aan zoiets;
Maar dat werkt dus niet
dan krijg ik de melding;
Deze subquery kan maximaal één record als resultaat hebben.
Hopenlijk kunnen jullie wat licht op de query (sub) laten schijnen.
Groeten,
Patrick
Ik dacht zelf aan zoiets;
Code (php)
1
2
3
4
2
3
4
SELECT DISTINCT doc_code
FROM cursus
WHERE doc_code <>
(SELECT doc_code FROM docent WHERE cursus.doc_code <> docent.doc_code)
FROM cursus
WHERE doc_code <>
(SELECT doc_code FROM docent WHERE cursus.doc_code <> docent.doc_code)
Maar dat werkt dus niet
dan krijg ik de melding;
Deze subquery kan maximaal één record als resultaat hebben.
Hopenlijk kunnen jullie wat licht op de query (sub) laten schijnen.
Groeten,
Patrick
Gesponsorde koppelingen:
Omschrijf eens de query vraag. We kunnen hier uit een foute query niet redeneren wat het wel zou moeten zijn. Aan de <> te zien denk ik dat je een WHERE NOT EXISTS nodig hebt maar ik kan het mis hebben.
je kunt het eventueel op deze manier proberen
Teun Hesseling op 20/10/2010 09:55:37:
Deze query is ook fout.
Teun die van jou werkt niet zoals ik het bedoel,
ik heb meerdere tabellen maar de twee waar het nu omgaat zijn;
Docent en Cursus
Daarin staat
Docent
Cursus
En wat ik nu moet krijgen is met een sub query dat de docenten die nog geen cursus heeft gegeven dat is dus doc_code SE met doc_naam Sengers
En dat krijg ik niet voor elkaar.
Wat ik moet volgens mij in de hoofd query kijken in cursus welke docenten er instaan en dan met de sub query uitlezen wie er geen cursus heeft gegeven.
Hopenlijk snappen jullie het
Groeten,
Patrick
ik heb meerdere tabellen maar de twee waar het nu omgaat zijn;
Docent en Cursus
Daarin staat
Docent
Cursus
Code (php)
1
2
3
4
5
6
7
8
9
2
3
4
5
6
7
8
9
CURS_CODE CURS_PLTS CURS_DAT OMSCHR DOC_CODE
C++ MADE 27-11-1993 PROGRAMMEREN IN C++ MO
DB3 BREDA 4-12-1993 DBASE III PLUS WI
DB4 ETTEN 11-12-1993 DBASE IV HM
FW BREDA 20-11-1993 FRAMEWORK WI
NO BREDA 6-12-1993 NORMALISEREN MO
OA2 MADE 13-11-1993 OPEN ACCESS 2.1 PE
OA3 BREDA 13-11-1993 OPEN ACCESS 3.0 GR
WP BREDA 20-11-1993 WORDPERFECT GR
C++ MADE 27-11-1993 PROGRAMMEREN IN C++ MO
DB3 BREDA 4-12-1993 DBASE III PLUS WI
DB4 ETTEN 11-12-1993 DBASE IV HM
FW BREDA 20-11-1993 FRAMEWORK WI
NO BREDA 6-12-1993 NORMALISEREN MO
OA2 MADE 13-11-1993 OPEN ACCESS 2.1 PE
OA3 BREDA 13-11-1993 OPEN ACCESS 3.0 GR
WP BREDA 20-11-1993 WORDPERFECT GR
En wat ik nu moet krijgen is met een sub query dat de docenten die nog geen cursus heeft gegeven dat is dus doc_code SE met doc_naam Sengers
En dat krijg ik niet voor elkaar.
Wat ik moet volgens mij in de hoofd query kijken in cursus welke docenten er instaan en dan met de sub query uitlezen wie er geen cursus heeft gegeven.
Hopenlijk snappen jullie het
Groeten,
Patrick
"uitlezen wie er geen cursus heeft gegeven"
Dus inderdaad in de subquery een: WHERE NOT EXISTS
SELECT doc_code, doc_naam
FROM docent
WHERE NOT EXISTS
(SELECT 'x' FROM cursus WHERE cursus.doc_code = docent.doc_code)
Dus inderdaad in de subquery een: WHERE NOT EXISTS
SELECT doc_code, doc_naam
FROM docent
WHERE NOT EXISTS
(SELECT 'x' FROM cursus WHERE cursus.doc_code = docent.doc_code)
Gewijzigd op 20/10/2010 10:50:19 door John D
Oké heel erg bedankt John D zo werkt hij
Toevoeging op 20/10/2010 12:22:27:
Zou iemand mij nog een keer kunnen helpen ik moet nu een query met sub maken voor cursisten die nog niet betaald hebben, die moet allemaal uit tabel c_regel1 komen
ik heb de volgende query met sub gemaakt
maar deze laat alleen zien welke wel betaald is en ik moet zien welke nog niet betaald is, dus de uit komst moet zijn dat cursistnr 2 cursus DB3 en OA2 nog niet betaald heeft
Toevoeging op 20/10/2010 12:22:27:
Zou iemand mij nog een keer kunnen helpen ik moet nu een query met sub maken voor cursisten die nog niet betaald hebben, die moet allemaal uit tabel c_regel1 komen
Code (php)
1
2
3
4
5
6
7
8
2
3
4
5
6
7
8
CURS_CODE CURSISTNR CIJFER BETAALD
DB3 2 6
DB3 64 8 3300
DB3 88 9 3300
DB4 14 6 3600
OA2 2 9
OA2 14 5 2400
OA2 88 7 2000
DB3 2 6
DB3 64 8 3300
DB3 88 9 3300
DB4 14 6 3600
OA2 2 9
OA2 14 5 2400
OA2 88 7 2000
ik heb de volgende query met sub gemaakt
Code (php)
1
SELECT DISTINCT cursistnr, betaald FROM c_regel1 WHERE betaald IN (SELECT betaald FROM c_regel1 WHERE betaald = betaald)
maar deze laat alleen zien welke wel betaald is en ik moet zien welke nog niet betaald is, dus de uit komst moet zijn dat cursistnr 2 cursus DB3 en OA2 nog niet betaald heeft
Gewijzigd op 20/10/2010 12:22:44 door Patrick Stel
Niet twee keer dezelfde tabel ophalen. Omschrijf eerst je functionele vraag goed!!
cursisten die nog niet betaald hebben:
select cursistnr, 'Niet betaald!' FROM c_regel1 WHERE betaald = 0;
select cursistnr, 'Niet betaald!' FROM c_regel1 WHERE betaald is NULL;
cursisten die betaald hebben:
select cursistnr, 'Betaald!' FROM c_regel1 WHERE betaald > 0;
Beide:
select cursistnr, betaald FROM c_regel1;
cursisten die nog niet betaald hebben:
select cursistnr, 'Niet betaald!' FROM c_regel1 WHERE betaald = 0;
select cursistnr, 'Niet betaald!' FROM c_regel1 WHERE betaald is NULL;
cursisten die betaald hebben:
select cursistnr, 'Betaald!' FROM c_regel1 WHERE betaald > 0;
Beide:
select cursistnr, betaald FROM c_regel1;
Edit:
Duik eens in: http://www.phptuts.nl/view/41/14/ en/of koop het boek:
http://www.comcol.nl/detail/57894.htm van Rick van der Lans of
http://www.comcol.nl/detail/70070.htm
Duik eens in: http://www.phptuts.nl/view/41/14/ en/of koop het boek:
http://www.comcol.nl/detail/57894.htm van Rick van der Lans of
http://www.comcol.nl/detail/70070.htm
Gewijzigd op 20/10/2010 14:50:38 door John D



