query in query

Status
Niet open voor verdere reacties.

ddirickx

Gebruiker
Lid geworden
20 jan 2009
Berichten
10
Hey allemaal,

Ik zoek een oplossing voor mijn probleem. Ik weet dat dit een herhaling is van een andere vraag, maar hier stel de vraag hier wat duidelijker (de andere mag een slotje). Ik zou graag de volgende sql vervangen door een andere.

select x1
from tablex
where x1 not in (select x1 from tablex where (andere uitdrukking))​

vervangen door:

select x1
from tablex
where x1 not in (expression!query2)

waarbij query2 een query is die gedefinieerd is in mijn access 2000 database (bij dezelfde tablex):

select x1
from tablex
where (andere uitdrukking)​

Wat moet ik schrijven in de plaats van expression!query2?????
Ook een antwoord dat dit niet kan, kan mij helpen (dan kan ik stoppen met zoeken )

In deze quote zie je de originele sql die ik gebruik
SELECT Usables.ID, Usables.[Usable Name]
FROM Usables
WHERE (((Usables.ID) Not In (SELECT Usables.[ID] FROM Usables LEFT JOIN Profiles_Usables ON Usables.ID = Profiles_Usables.[Usable Name] WHERE Profiles_Usables.[Name Profile]=[Forms]![Profiles]![ID])) AND ((Usables.[Usables Type])=[Forms]![Profiles]![UsableType]))
ORDER BY Usables.[Usable Name];

Alvast vriendelijk bedankt!!
 
Je SQL code klopt niet.
Ten eerst dient er een join (een link) tussen je query en tabel te worden opgenomen waarbij je alle velden in je tabel wil laten zien maar ook alle overeenkomstige velden van je query.

Vervolgens plaatsen we de filter Is Null op het overeenkomstige veld (je ID) van je query waardoor we alleen nog de niet-overeenkomstige velden zien.

De query plaats je dus niet in een expressie.
De code komt er dan zo uit te zien:

Code:
SELECT Usables.ID, Usables.[Usable Name]
FROM Usables 
LEFT JOIN [Query] ON [Usables].[ID] = [Query].[ID]
WHERE ((([Query].ID) Is Null)) AND ((Usables.[Usables Type])=[Forms]![Profiles]![UsableType])))
ORDER BY Usables.[Usable Name];

ps. Ik heb de code niet voor je kunnen testen.
Nog een tip, als je de query als losse query hebt opgeslagen kan je ook gebruik maken van de query wizard Niet gerelateerde records.
 
Dank je wel!!!

De code klopte niet helemaal in mijn database, maar komt zeker op hetzelfde neer :) Met die query wizard ben ik hier geraakt:

SELECT Usables.ID, Usables.[Usable Name], Usables.[Usables Type]
FROM Usables LEFT JOIN UsablesOfProfiles ON Usables.[Usable Name] = UsablesOfProfiles.[Usables].[Usable Name]
WHERE (((UsablesOfProfiles.Usables.[Usable Name]) Is Null) AND ((Usables.[Usables Type])=[Forms]![Users]![UsableType]))
ORDER BY Usables.[Usable Name];
 
Laatst bewerkt:
Status
Niet open voor verdere reacties.

Nieuwste berichten

Terug
Bovenaan Onderaan