Hi firestone,
1 . Ich suche alle Nummern die ein A2 UND ein A4 haben UND
zusätzlich ein B3
SELECT nummer FROM myTab WHERE locus = 'A' AND merkmal = '2'
INTERSECT
SELECT nummer FROM myTab WHERE locus = 'A' AND merkmal = '4'
INTERSECT
SELECT nummer FROM myTab WHERE locus = 'B' AND merkmal = '3';
Lies doch auch mal den Artikelbaum „SELECT mit WHERE ueber meherer rows“ ein wenig weiter unten: /t/select-mit-where-ueber-meherer-rows/4629222
- ich Suche alle Nummern die kein B3 haben
SELECT nummer FROM myTab o WHERE NOT EXISTS
(SELECT \* FROM myTab i
WHERE i.nummer = o.nummer AND
i.locus = 'B' AND
i.merkmal = 3);
11 | A | 2
11 | A | 4
11 | B | 3
11 | B | 7
11 | C | 7
- Ich suche alle Nummern die ein A2 UND ein B7 haben
Das ist das gleiche wie 1.
- Ich suche alle Nummern die ein A2 aber KEIN B7 haben
Das ist das gleiche wie 2., nur dass Du im äußeren SELECT auch noch einen Bedingung brauchst.
Ab hier verstehe ich allerdings nichts mehr und bin daher ganz und gar nicht sicher, ob ich Dein Problem überhaupt verstanden habe:
Das Problem bei der Abfrage ist mich interessieren vom Prinzip
her nur die Datensätze mit A oder B aber da ich nicht genau
weiss ob eine Nummer 0 1,2,3 oder alle 4 Datensätze hat ist es
schwer einen vergleich herzustellen.Desweiteren sind alle Datensätze Zeilen der gleichen Tabelle.
ich hatte eine Abfrage gebastelt die soweit auch gut
funktioniert hat das Problem bei meiner Abfrage war das IMMER
alle vier Sätze vorhanden sein müssen also 2 von A und 2 von
B. Wenn jetzt eine Nummer z.B wie folgt aussieht12 | A | 4
12 | B | 5
12 | B | 7und man alle Nummern mit A 4 und A3 sucht sollte die Nummer 12
auch mit angezeigt werden
Warum? Es gibt doch A3 gar nicht(???). Ich verstehe einfach nicht worauf das hinausläuft.
hätte sie jetzt allerdings einen
Datensatz mehr12 | A | 4
12 | A | 8
12 | B | 5
12 | B | 7
so dürfe sie nur angezeigt werden wenn sie ein A3 und A4 hat.
Soll es dann hier also angezeigt werden oder nicht? Und warum (schon oder eben nicht)?
Gruß
Martin