sql IS Niet functie

Status
Niet open voor verdere reacties.

Sixes

Nieuwe gebruiker
Lid geworden
12 apr 2011
Berichten
4
Beste helpmijers,

Ik vroeg mij af of er in SQL een functie is die zoekt op iets dat het niet is. Een soort van IS NOT functie. Ik heb al gezocht maar het beste wat ik in die vorm kan vinden was NOT IN.

Bestaat deze functie wel? of weet iemand een eenvoudige manier om dit na te bootsen?

Bij voorbaad bedankt!
 
Je kunt in elke query wel een vergelijking maken op basis van =, of <> wat het omgekeerde is. NOT kun je ook nog wel gebruiken voor uitsluitingen, zoals in NOT In() etc. Wat is je precieze SQL vraag dan?
 
Ik heb een tabel met ID waarde. Aan elke persoon zijn enkele id's gekoppeld, nu wil ik kijken welke nog niet gekoppeld zijn aan de persoon. Het probleem dat zich voordoet is echter dat er ook Id's zijn die dezelfde naam hebben (verschillende afdelingen met dezelfde naam maar weer verschillende Id).


Wat ik wil bereiken is het volgende:
Ik wil een rapport opvragen die bij de geselecteerde persoon, met behulp van een knop alle waardes kan opvragen die hij nog niet heeft en direct de dubbele eruit filteren.

Opmaak van de tabellen

Personen
Persoon_ID
Persoon_naam
Persoon_adres
Enz (niet zo heel belangrijk)

PersoonWaarde
Persoon_ID
Waarde_ID
Afdeling_waarde
Datum

Waarde
Waarde_ID
Waarde_naam
Waarde_afdeling

Ik wil per persoon id (SELECT Persoon_ID FROM Personen WHERE Persoon_ID=Forms!formulier1_Persoon_ID) kunnen opvragen welke waardes hij nog niet heeft van de waardes in tabel waarde.
Daarnaast kan het zijn datwaarde_naam meerdere keren voorkomt op verschillende afdelingen, maar als persoon 1 waarde 1 heeft, en deze heeft als naam dezelfde als waarde 2, dan moet waarde 2 niet opgevraagt worden.

Ik hoop dat je snapt waar ik heen wil.
 
Laatst bewerkt:
Probeer het eens met de wizards <Niet-gerelateerde records> en <Dubbele records>, zou ik zeggen.
 
Ik ben aan de slag gegaan met je opmerkingen en heb een query die doet wat ik wil (als die zou werken).

Als ik deze query uitvoer krijg ik de melding dat er maar 1 waarde uit de subquery mag komen, kan dit ook op meerdere records bekeken worden?

Ik heb ze op het moment in 2 queries staan zodat het overzichtelijk blijft voor mijzelf.

Code:
SELECT Waarde_ID, Naam_Waarde, Afdeling_Waarde
FROM Waarde
WHERE Waarde_id not in (SELECT Waarde_ID from Persoonwaarde WHERE Persoon_id = Forms!Formulier1!Persoon_id);

Query 1 doet wat ik wil, hij vraagt alle waardes op die persoon_id x nog niet heeft.

Query 2
Code:
SELECT * FROM Query2 WHERE Naam_Waarde <>  (SELECT Naam_Waarde FROM Waarde WHERE Waarde_id = (SELECT Waarde_id FROM Persoonwaarde WHERE Persoon_id = Forms!Formulier1!Persoon_id));

Deze geeft een fout dat er maar 1 waarde terug mag komen uit de subquery, maar ik heb geen idee hoe ik ervoor kan zorgen dat hij meerdere waardes toelaat? is dit uberhaupt wel mogelijk? Of moet ik dan de query anders formuleren?
 
Laatst bewerkt:
Het ligt niet aan de query, die laat wel meerdere waarden toe... De melding heeft meer te maken met Het gegeven dat je moet filteren op unieke waarden, zoals sleutelvelden. (bijvoorbeeld het veld Waarde_ID). Vermoedelijk is Naam_Waarde geen sleutelveld. En daar loopt-ie dus op spaak.
 
Status
Niet open voor verdere reacties.
Terug
Bovenaan Onderaan