Versio

Access SQL - Sub Query

Overzicht Reageren

Patrick Stel

Patrick Stel

20/10/2010 09:52:16
Quote Anchor link
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;
Code (php)
PHP script in nieuw venster Selecteer het PHP script
1
2
3
4
SELECT DISTINCT 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
 
PHP hulp

PHP hulp

23/05/2012 20:05:33
Gesponsorde koppelingen:
 
John D

John D

20/10/2010 09:54:53
Quote Anchor link
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.
 
Teun Hesseling

Teun Hesseling

20/10/2010 09:55:37
Quote Anchor link
je kunt het eventueel op deze manier proberen

Code (php)
PHP script in nieuw venster Selecteer het PHP script
1
2
3
4
5
<?php
SELECT DISTINCT c.doc_code
FROM cursus AS c, docent AS d
WHERE c.doc_code <> d.doc_code
?>
 
John D

John D

20/10/2010 10:10:08
Quote Anchor link
Teun Hesseling op 20/10/2010 09:55:37:
je kunt het eventueel op deze manier proberen

Code (php)
PHP script in nieuw venster Selecteer het PHP script
1
2
3
4
5
<?php
SELECT DISTINCT c.doc_code
FROM cursus AS c, docent AS d
WHERE c.doc_code <> d.doc_code
?>

Deze query is ook fout.
 
Patrick Stel

Patrick Stel

20/10/2010 10:24:41
Quote Anchor link
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
Code (php)
PHP script in nieuw venster Selecteer het PHP script
1
2
3
4
5
6
7
DOC_CODE    DOC_NAAM
GR        GROND
HM        HOOYMAYERS
MO        MOL
PE        PETERS
SE        SENGERS
WI        WITLOX


Cursus
Code (php)
PHP script in nieuw venster Selecteer het PHP script
1
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

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
 
John D

John D

20/10/2010 10:46:11
Quote Anchor link
"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)
Gewijzigd op 20/10/2010 10:50:19 door John D
 
Patrick Stel

Patrick Stel

20/10/2010 11:00:24
Quote Anchor link
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
Code (php)
PHP script in nieuw venster Selecteer het PHP script
1
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


ik heb de volgende query met sub gemaakt
Code (php)
PHP script in nieuw venster Selecteer het PHP script
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
 
John D

John D

20/10/2010 14:41:25
Quote Anchor link
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;

Gewijzigd op 20/10/2010 14:50:38 door John D
 



Overzicht Reageren

Get Adobe Flash player