Ik probeer het volgende te bereiken:

Ik wil alle informatie uit tabel1 ophalen en column1 vergelijken met de gegevens uit tabel2.column1 en tabel3.column1.

Wanneer de gegevens uit tabel2.column1 en tabel3.column1 niet hetzelfde zijn als de gegevens in tabel1.column1 dan mogen die niet worden weergegeven.

De volgende code heb ik nu:

[sql]
Select * from [table1]
Where [table1].[column1]
Not in (select [table2].[column1] from [table2])
[/sql]

Bovenstaande werkt, maar dan natuurlijk wel met de originele variabelen. Het probleem is alleen dat nu nog de derde selectie moet worden toegevoegd, namelijk:

[sql]
Not in (select [table 3].[column1] from [table3])
[/sql]

Het is waarschijnlijk vrij simpel maar kom er zelf nog niet helemaal uit, alvast vriendelijk bedankt
en aan wat voor gegevens denken we dan?
Zo?:

SELECT
[table1].* 
FROM
[table1], [table2], [table3]
WHERE 
[table1].[column1] 
NOT IN( SELECT [table2].[column1] FROM [table2] )
AND
[table1].[column1] 
NOT IN( SELECT [table3].[column1] FROM [table3] )
Terence schreef op 14.08.2008 14:13
en aan wat voor gegevens denken we dan?


De gegevens waar ik een lijst van wil generen zijn contactnaam gegevens. Omdat leveranciers (tabel2) en klanten (tabel3) ook voorkomen in contacten (tabel 1) wil ik die uitsluiten van het lijstje zodat ik alle overige overhoudt.

De inhoud van [tabel1].[column1] en van [tabel2].[column1] en van [tabel3].[column1] lopen 1 op 1. Dat wil zeggen dat zodra iets wordt gewijzigd in [tabel1] en die record komt ook voor in [tabel2] dat dit ook wordt gewijzigd in [tabel2]

De gegevens die in [column1] staan bestaan uit namen met eventueel leestekens en spaties.

Ik doe dit alles gewoon via query analyser omdat het een eenmalig lijstje is dat wij willen gebruiken voor een nieuwsbrief.
Martijn! schreef op 14.08.2008 14:15
Zo?:

SELECT
[table1].* 
FROM
[table1], [table2], [table3]
WHERE 
[table1].[column1] 
NOT IN( SELECT [table2].[column1] FROM [table2] )
AND
[table1].[column1] 
NOT IN( SELECT [table3].[column1] FROM [table3] )


Ja dit werkt, bedankt! :)
Jarno schreef op 14.08.2008 14:21
[quote='Terence schreef op 14.08.2008 14:13']en aan wat voor gegevens denken we dan?


De gegevens waar ik een lijst van wil generen zijn contactnaam gegevens. Omdat leveranciers (tabel2) en klanten (tabel3) ook voorkomen in contacten (tabel 1) wil ik die uitsluiten van het lijstje zodat ik alle overige overhoudt.

De inhoud van [tabel1].[column1] en van [tabel2].[column1] en van [tabel3].[column1] lopen 1 op 1. Dat wil zeggen dat zodra iets wordt gewijzigd in [tabel1] en die record komt ook voor in [tabel2] dat dit ook wordt gewijzigd in [tabel2]

De gegevens die in [column1] staan bestaan uit namen met eventueel leestekens en spaties.

Ik doe dit alles gewoon via query analyser omdat het een eenmalig lijstje is dat wij willen gebruiken voor een nieuwsbrief.
[/quote]

Begrijp ik het goed dat je een tabel contacten hebt, een tabel leveranciers en een tabel klanten?

Je hebt dan in principe genoeg aan tabel contacten, een tabel type en een koppeltabel.
Middels die koppeltabel kan een contact ook meerdere typen hebben (zowel klant als leverancier in dit geval)

Volgens mij is je datamodel dus niet goed.
Robert_Deiman schreef op 14.08.2008 14:53
[quote='Jarno schreef op 14.08.2008 14:21'][quote='Terence schreef op 14.08.2008 14:13']en aan wat voor gegevens denken we dan?


De gegevens waar ik een lijst van wil generen zijn contactnaam gegevens. Omdat leveranciers (tabel2) en klanten (tabel3) ook voorkomen in contacten (tabel 1) wil ik die uitsluiten van het lijstje zodat ik alle overige overhoudt.

De inhoud van [tabel1].[column1] en van [tabel2].[column1] en van [tabel3].[column1] lopen 1 op 1. Dat wil zeggen dat zodra iets wordt gewijzigd in [tabel1] en die record komt ook voor in [tabel2] dat dit ook wordt gewijzigd in [tabel2]

De gegevens die in [column1] staan bestaan uit namen met eventueel leestekens en spaties.

Ik doe dit alles gewoon via query analyser omdat het een eenmalig lijstje is dat wij willen gebruiken voor een nieuwsbrief.
[/quote]

Begrijp ik het goed dat je een tabel contacten hebt, een tabel leveranciers en een tabel klanten?

Je hebt dan in principe genoeg aan tabel contacten, een tabel type en een koppeltabel.
Middels die koppeltabel kan een contact ook meerdere typen hebben (zowel klant als leverancier in dit geval)

Volgens mij is je datamodel dus niet goed.[/quote]

Wij maken gebruik van een ERP/boekhoudpakket. Omdat dit boekhoudpakket niet de gewenste functie bevat om de juiste selecties los te laten op de contactlijst doe ik het ophalen van de lijst met enkele voorwaardes via de server waar de database op geinstalleerd staat :)

Het boekhoudpakket is standaard op deze manier opgebouwd.

Verder ben ik het overigens wel met je eens (voor zover ik hier verstand van heb) :)
Hmm.... zelfs bij dat soort pakketten pakken ze het dus al niet op de juiste manier aan... Jammer, want dat had je een boel werk gescheeld.

Reageren