# Select Statement auf Relation



## trazzag (29. Aug 2007)

Ich stehe gerade irgendwie bei einer Abfrage auf dem Schlauch...
Folge Tabelle (vereinfacht):


```
ID     WERT  
--------------
   1       1
   1       2
   1       3
   2       1
   2       2
   3       3
```

Ich will folgendes Ergebnis bekommen: Die ID, bei der alle 3 Werte (von 1 bis 3) auftauchen - in diesem Fall also die 1.

Folgende Abfrage liefert KEIN Ergebnis:
SELECT ID FROM tabelle WHERE WERT=1 AND WERT=2 AND WERT=3

Habe auch versuch über die Summe zu gehen:
SELECT ID FROM tabelle HAVING SUM(WERT)=6
--> gibt die Fehlermeldung: "keine Gruppenfunktion für Einzelgruppe"

Ich hoffe mir kann jemand weiter helfen!


----------



## trazzag (29. Aug 2007)

Ok, die zweite Variante habe ich jetzt doch zum Laufen bekommen, in dem ich ein GROUP BY eingefügt habe:

SELECT ID FROM tabelle GROUP BY ID HAVING SUM(WERT)=6

Warum das anders nicht läuft, würde mich dennoch interessieren...


----------



## mikachu (30. Aug 2007)

SELECT ID FROM tabelle WHERE WERT=1 AND WERT=2 AND WERT=3
in der tabelle werden tupel für tupel die bedinungen abgeprüft... da aber eine id genau einen wert hat, trifft die bedingung niemals zu

SELECT ID FROM tabelle HAVING SUM(WERT)=6
es wird wieder tupel für tupel durchgegangen...

SELECT ID FROM tabelle GROUP BY ID HAVING SUM(WERT)=6
hier fasst du die einzelnen tupel, die die gleiche id besitzen, zu einer menge zusammen, worauf du die sum() funktion mit den gewünschten ergebnis aufrufen kannst

liest du dir das hier mal durch


----------



## trazzag (30. Aug 2007)

Danke!


----------

