> > Hallo,
> >
> > die unten stehende Abfrage soll eigentlich von einem MS SQL
> Express-Server
> > 2005 Daten einer Tabelle liefern, die in einer anderen Tabelle nicht
> > enthalten sind. Jedoch wird immer die Gesamtmenge aufgelistet.
> >
> > Es werden zwei Tabellen von dreien abgefragt:
> >
> > Tabelle 1 heißt \"Benutzer\". Die Spalten heißen \"ID\", \"Nachname\",
> > \"Vorname\".
> >
> > Tabelle 2 heißt \"Zuweisung\". Die Spalten heißen \"ID\", \"Benutzer_ID\",
> > \"Zeitschrift_ID\".
> >
> > Tabelle 3 heißt \"Zeitschriften\". Die Spalten heißen \"ID\" und
> > \"Zeitschrift\".
> >
> > ZeitschriftenID ist eine Variable, die auch einen Inhalt hat...
> >
> > Die nicht funktionierende Abfrage lautet:
> >
> > \"SELECT
> > Benutzer.ID, Benutzer.Nachname, Benutzer.Vorname
> > FROM
> > Benutzer
> > WHERE
> > Benutzer.ID
> > NOT IN
> > (SELECT
> > Benutzer_ID
> > FROM
> > Zuweisung
> > WHERE
> > Zeitschrift_ID=\" & ZeitschriftenID & \")
> > ORDER BY
> > Benutzer.Nachname, Benutzer.Vorname ASC\"
> >
> > Ich möchte also alle Benutzer herausfinden, die eine besagte
> Zeitschrift
> > NICHT beziehen, deren Benutzer_ID also in der Tabelle \"Zuweisung\" nicht
> mit
> > der abgefragten Zeitschriften_ID in einer Zeile aufgeführt ist.
>
> Kommt es zu einer Fehlermeldung? Wenn ja, wie lautet sie?
>
> Wenn nein: wie sieht das zusammengesetzte Statement aus (also nach
> Einsetzen des Variablenwerts)?
>
> Welches Ergebnis erhältst Du anstelle des von Dir erwarteten Ergebnisses?
Hui, das ging aber sehr schnell...
a) Es gibt keine Fehlermeldung.
b) Das zusammengesetzte Statement würde so aussehen, wobei die Variable durch einen Integer-Wert ersetzt wird, z. B. 5:
\"SELECT
Benutzer.ID, Benutzer.Nachname, Benutzer.Vorname
FROM
Benutzer
WHERE
Benutzer.ID
NOT IN
(SELECT
Benutzer_ID
FROM
Zuweisung
WHERE
Zeitschrift_ID=5)
ORDER BY
Benutzer.Nachname, Benutzer.Vorname ASC\"
Ich erwarte eine Datenmenge, die das, was bereits in einer anderen Tabelle enthalten ist, nicht beinhaltet.
Beispiel zu ähnlicher Funktionalität: Du hast in einem Fenster zwei Listboxen und kannst nun den Inhalt der einen in die andere verschieben. Ich habe zwei DataGridViews und möchte, dass Daten, die bereits in der einen aufgelistet sind, nicht mehr in der anderen erscheinen.