Verschalter Select

Heiko

Benutzer
Beiträge
12
Hallo Forum,

ich verliere grad den Glauben....

Ich fülle eine Tabelle (Stundenzettel) mit Daten von Stundenzetteln. Nun möchte ich die Personen selektieren, die nicht in dieser Tabelle stehen. Dazu sehe ich mir die Personaltabelle an - verknüpft sind diese beiden Tabellen über das Feld Name2.

Das probiere ich über folgenden Selekt:
Code:
select * from Personal
Where Name2 not in (Select Name2 from Stundenzettel)

Es gibt definitv Personen die nicht mit Name2 in der Tabelle Stundenzettel stehen. Was mache ich falsch?
 
Werbung:
Hallo Forum,

ich verliere grad den Glauben....

Ich fülle eine Tabelle (Stundenzettel) mit Daten von Stundenzetteln. Nun möchte ich die Personen selektieren, die nicht in dieser Tabelle stehen. Dazu sehe ich mir die Personaltabelle an - verknüpft sind diese beiden Tabellen über das Feld Name2.

Das probiere ich über folgenden Selekt:
Code:
select * from Personal
Where Name2 not in (Select Name2 from Stundenzettel)

Es gibt definitv Personen die nicht mit Name2 in der Tabelle Stundenzettel stehen. Was mache ich falsch?

Zuerst einmal Kritik:

Du hast vor knapp 1 Jahr mal 'ne Frage gestellt und eine ganze Reihe von Antworten und Nachfragen bekommen. Tote Hose von Dir. Finde ich nicht fair.

Du willst aus Stundenzettel was rauslesen? Das ist a bissl komisch formuliert, aber ich glaube zu verstehen, was Du meinst.

Für mich funktioniert aber die Abfrage:

Code:
test=*# create table personal (name text);
CREATE TABLE
Time: 191,991 ms
test=*# create table stundenzettel (name text);
CREATE TABLE
Time: 6,612 ms
test=*# insert into personal values ('max');
INSERT 0 1
Time: 0,334 ms
test=*# insert into personal values ('heiko');
INSERT 0 1
Time: 0,153 ms
test=*# insert into personal values ('anna');
INSERT 0 1
Time: 0,132 ms
test=*# insert into stundenzettel values ('anna');
INSERT 0 1
Time: 0,348 ms
test=*# select * from personal where name not in (select name from stundenzettel);
 name
-------
 max
 heiko
(2 rows)

Prüf noch mal, ob Du nicht was verbuchselt hast.
 
@akretschmer: Sorry, habe ich vorhin nicht gesehen. Mit Text geht es nicht, meine Felder sind vom Typ VARCHAR(40). Damit klappt dann auch dein Beispiel. Allerdings nicht in der Original-DB. Auch dort sind die beiden Felder die ich vergleiche in beiden Tabellen vom Typ Varchar(40). Ich vermute mal - kann es von zu Haus leider nicht einsehen - dass die Collation mir einen Strich durch die Rechnung macht.

Ich erstelle die Tabelle Stundenzettel mit einem "Select ... INTO from ... . Dabei fasse ich die Tabelle PERSONAL nicht an weil ich alle notwendigen Daten dazu aus zwei anderen Tabellen lesen kann. Ich vergleiche mal die Feldtypen. Eventuell programmiere ich den Abgleich schnell selbst. Komisch kommt mir das aber schon vor...
 
NULL Werte!

Code:
select * from Personal
Where Name2 not in (Select Name2 from Stundenzettel WHERE Name2 IS NOT NULL)
 
Das ist die Datenbank unseres "ERP" Systems - an der ist nichts normal! Es stehen tatsächlich NULL Werte in den Feldern. Aber zum eigentichen Thema: Ich habe es umgangen indem ich "von Hand" die Tabellen durchsuche.
 
Werbung:
Zurück
Oben