Abfrageproblem für Dummies....

Abfrageproblem für Dummies....

am 16.09.2006 19:58:11 von Andre Bryx

Ich stehe auf dem Schlauch :-)
Ich habe eine Datenbank, die ungefähr so aussieht:

-VAR1-VAR2-
-001-115
-001-123
-001-657
-002-115
-003-115
-003-657
-004-123
-004-115


Ich möchte eine Abfrage erstellen, in der nur jeweils
EIN Wert von VAR1 herauskommt (gruppierung?), der z.B.
jeweils "115" UND "657" in VAR2 beinhaltet.

Mein Denkansatz

SELECT var1
FROM tabelle
WHERE (var2=115 And var2=657)
GROUP BY var1;

funktioniert irgendwie nicht.
Scheint mir bei genauer Betrachtung auch nicht logisch.

Kleine Hilfestellung wäre net!

Re: Abfrageproblem fürDummies....

am 16.09.2006 20:12:36 von Stefan Scholl

Andre Bryx wrote:
> Ich möchte eine Abfrage erstellen, in der nur jeweils
> EIN Wert von VAR1 herauskommt (gruppierung?), der z.B.
> jeweils "115" UND "657" in VAR2 beinhaltet.

VAR2 kann nicht gleichzeitig 115 und 657 enthalten.

Du brauchst ein OR statt eines AND.

--
Web (en): http://www.no-spoon.de/ -*- Web (de): http://www.frell.de/

Re: Abfrageproblem für Dummies....

am 16.09.2006 20:17:50 von Andre Bryx

>
> VAR2 kann nicht gleichzeitig 115 und 657 enthalten.

Ebend - das erscheindmir technisch nicht logisch

>
> Du brauchst ein OR statt eines AND.
>
Ja, aber dann bekomme auch auch datensätze mit der
Basis VAR1 zurück die nicht ZWINGEND die beiden Werte
aus VAR2 enthalten ... oder ?

Re: Abfrageproblem für Dummies....

am 16.09.2006 20:29:56 von Claus Reibenstein

Andre Bryx schrieb:

> Ich habe eine Datenbank, die ungefähr so aussieht:
>
> [...]
>
> Ich möchte eine Abfrage erstellen, in der nur jeweils
> EIN Wert von VAR1 herauskommt (gruppierung?), der z.B.
> jeweils "115" UND "657" in VAR2 beinhaltet.
>
> Mein Denkansatz
>
> SELECT var1
> FROM tabelle
> WHERE (var2=115 And var2=657)
¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯

Diese Bedingung ist _immer_ falsch. Du wirst also immer ein leeres
Ergebnis bekommen.

Ich würde es so probieren (ungetestet):

SELECT var1 FROM tabelle
WHERE var1 in (SELECT var1 FROM tabelle WHERE var2 = 115)
AND var2 = 657

Oder ohne Sub-SELECT (ebenfalls ungetestet):

SELECT t1.var1 FROM tabelle AS t1, tabelle AS t2
WHERE t1.var1 = t2.var1 AND t1.var2 = 115 AND t2.var2 = 657

Gruß. Claus

Re: Abfrageproblem für Dummies....

am 16.09.2006 21:04:31 von Andre Bryx

Claus Reibenstein schrieb:

> SELECT var1 FROM tabelle
> WHERE var1 in (SELECT var1 FROM tabelle WHERE var2 = 115)
> AND var2 = 657
>
> Oder ohne Sub-SELECT (ebenfalls ungetestet):
>
> SELECT t1.var1 FROM tabelle AS t1, tabelle AS t2
> WHERE t1.var1 = t2.var1 AND t1.var2 = 115 AND t2.var2 = 657

gute Ansätze, leider muss ich noch etwas ausholen:
Die Bedingungen ergeben sich aus einer variablen Anzahl von bis
zu 50 Werten, die aus einer etwas komplexen Checkboxauswahl stammen.

Eine interessanter Lösungsansatz, den ich gerade bekommen habe
stammt aus einer anderen NG:
http://groups.google.de/group/de.comp.datenbanken.ms-access/ msg/35ae9e916db9ff96?hl=de

Andre

Re: Abfrageproblem für Dummies....

am 17.09.2006 11:28:09 von Nurkai

Versuchs mal hiermit...

SELECT distinct(var1) from test where var2 in (115,657)