Frage zu einer geschachtelten SQL-Anweisung

wahed132

Mitglied
Hallo alle zusammen
hab folgendes Problem:
bin im Informatikkurs und wir haben eine Aufgabe gestellt bekommen,die ich sogar nach langen Überlegugnen net hinbekommen hab
hab gehofft es kann mir einer helfen^^.

es ist folgende aufgabe:

Finden Sie mit einem SQL-Befehl aus der Tabelle

KeyNr Farbe BestNr Datum
1 Blau 0815 21.05.2009
2 Gruen 0815 21.05.2009
3 Gelb 0815 21.05.2009
4 Blau 1234 23.05.2009
5 Gelb 1234 23.05.2009

folgende Daten:

diejenigen Bestellungen (also Bestellnummern), die eine bestimmte Farbe (z.B. 'Blau') NICHT enthalten.

Tipp: geschachtelte SELECT-Anweisung.
 
select ..where farbe != Blau
Wenn ich jetzt nicht ganz daneben gehauen habe O.o
Wozu da irgendetwas Schachteln mhh
Natürlich Syntax anpassen ^^
edit: ah ok es gibt mehrere farben mit einer bestellnummer O: *augen auf beim hilfekauf >.<*

Edit:
Einfach mit einem Subquery arbeiten. Obwohl das sehr verwirrend sein kann.
SELECT BestNr FROM tabelle WHERE BestNr != ALL (SELECT BestNr FROM tabelle WHERE Farbe = 'Blau')
Damit sollte es gehen, denke ich. Jedenfalls klappt es bei meiner Testdatenbank ^^
 
Zuletzt bearbeitet:
Hi,

ich würde das eher mit einem GROUP BY ... HAVING machen, ohne Subquery, ungefähr so:

SQL:
SELECT BestNr FROM tabelle
   GROUP BY BestNr
   HAVING SUM(IF Farbe = 'Blau' THEN 1 ELSE 0) = 0

LG
 
SQL:
SELECT BestNr FROM tabelle
   GROUP BY BestNr
   HAVING SUM(IF Farbe = 'Blau' THEN 1 ELSE 0) = 0
Irgendetwas stimmt da noch nicht mit dem Sum. So liefert das nur einen Fehler aus mh.
Code:
You have an error in your SQL syntax; check the manual that corresponds to your MySQL server version for the right syntax to use near 'Farbe = 'Blau' THEN 1 ELSE 0) = 0' at line 3
 
Hi,

von MySQL war auch nirgends die Rede, da geht's aber noch kürzer:

SQL:
SELECT BestNr FROM tabelle
   GROUP BY BestNr
   HAVING SUM(Farbe = 'Blau') = 0

LG
 

Neue Beiträge

Zurück