Zellen auswählen wenn nicht gleich

Antwort erstellen


BBCode ist eingeschaltet
[img] ist ausgeschaltet
[url] ist eingeschaltet
Smileys sind ausgeschaltet

Die letzten Beiträge des Themas
   

Ansicht erweitern Die letzten Beiträge des Themas: Zellen auswählen wenn nicht gleich

Re: Zellen auswählen wenn nicht gleich

von absti » Mi, 11.03.2009 21:05

Hallo Barlee,

Danke für die Antwort. Und wieder was dazugelernt :).

absti.

Re: Zellen auswählen wenn nicht gleich

von Barlee » Mi, 11.03.2009 20:23

Hallo absti,
Ich vermute, es liegt wohl daran, dass eine der Tabellen eine Abfrage ist
Da vermutest Du richtig. In solchem Fall musst Du aus Deiner Abfrage eine Ansicht (View) erstellen.
Rechte Maustaste auf Abfrage >> als Ansicht erstellen
Diese findest Du anschließend unter Tabellen wieder und kannst sie in Abfragen wie "normale" Tabellen ansprechen.

Gruß Barlee

Re: Zellen auswählen wenn nicht gleich

von absti » Mi, 11.03.2009 11:13

Hallo Barlee,

Danke für den Tip, interessiert mich schon noch. Funktioniert aber trotzdem bei mir nicht. Ich vermute, es liegt wohl daran, dass eine der Tabellen eine Abfrage ist (Test mit 2 "normalen" Tabellen hat funktioniert) . Wäre schön gewesen aber zum Glück hab' ich ja nun 'nen workaround.

absti.

Re: Zellen auswählen wenn nicht gleich

von Barlee » Di, 10.03.2009 22:10

Hallo absti,
Die einzelnen select's funktionieren aber, nur wenn ich sie per "MINUS" verknüpfe funktioniert's nicht mehr. Woran kann das liegen?
Falls es Dich noch interessiert, woran es liegt:
Setze einfach die Tabellennamen und Spaltenbezeichner in Anführungsstriche. ('SQL Kommando direkt ausführen' muss aktiviert sein.)

Gruß Barlee

Re: Zellen auswählen wenn nicht gleich

von absti » Di, 10.03.2009 16:01

Ok. So gehts. Vielen Dank.

Re: Zellen auswählen wenn nicht gleich

von Mr.Bobo » Di, 10.03.2009 13:56

Hallo,
also mir kommt es so vor als ob hier eine Abfrage mit Negation helfen kann. Ich würde das Problem so lösen:

Code: Alles auswählen

SELECT Tabelle1.Name FROM Tabelle1
WHERE Tabelle1.Name NOT IN (SELECT Tabelle2.Name FROM Tabelle2);
Zu beachten: Da Negationen immer Performance hungrig sind kann so eine Abfrage bei größeren Tabellen (mehrere hunderttausende Sätze) auch länger dauern. Als Abhilfe kann man für die betroffene Tabellenfelder bzw. Tabellenspalten einen Index aufbauen/anlegen.

Code: Alles auswählen

CREATE [UNIQUE] INDEX <index> ON <table> (<column> [DESC] [, ...]) [DESC];
CREATE INDEX wird mit ALTER TABLE-, oder CREATE TABLE-Anweisung verknüpft.

Re: Zellen auswählen wenn nicht gleich

von absti » Di, 10.03.2009 10:14

Habs ausprobiert, funktioniert bei mir leider nicht. Bekomme die Fehlermeldung "Table not found in statement". Die einzelnen select's funktionieren aber, nur wenn ich sie per "MINUS" verknüpfe funktioniert's nicht mehr. Woran kann das liegen? Arbeite mir OOO2.4, HSQLDB.

Re: Zellen auswählen wenn nicht gleich

von absti » Mo, 09.03.2009 21:39

Hm, hab ich mir schon gedacht, dass es was ganz einfaches sein muss... . Muss man eben nur wissen. Jedenfalls vielen Dank.

Re: Zellen auswählen wenn nicht gleich

von Barlee » Mo, 09.03.2009 18:14

Hallo absti,

das kannst Du mit MINUS lösen:

Code: Alles auswählen

SELECT Name FROM Tabelle1
MINUS
SELECT Name FROM Tabelle2
Gruß Barlee

Zellen auswählen wenn nicht gleich

von absti » Mo, 09.03.2009 13:23

Hallo,

Ich habe folgende Problemstellung:

Ich habe 2 Tabellen in einer Datenbank (Tabelle1, Tabelle2). Diese haben jeweils eine Spalte "Name". Die Namen der Tabelle2 sind auch in Tabelle 1 vorhanden, in Tabelle1 aber noch weitere. (Kurz:Tabelle2.Name ist eine Teilmenge von Tabelle1.Name). Ich will nun alle Namen aus Tabelle1 angezeigt bekommen, die aber nicht in Tabelle2 vorhanden sind. Die logische Fragestellung erscheint mir soweit richtig und klar, an der praktischen Ausführung bin ich aber bis jetzt gescheitert. Hat dazu jemand eine Idee?

Danke im voraus.

Nach oben