Laden...

SQL - Query Problem

Erstellt von cb666 vor 17 Jahren Letzter Beitrag vor 17 Jahren 2.232 Views
C
cb666 Themenstarter:in
19 Beiträge seit 2006
vor 17 Jahren
SQL - Query Problem

Hallo,

ich stelle mich wohl ein wenig blöde an.

habe eine tabelle in der ich folgende spalten A, B und C habe.
folgende werte habe ich in der tabelle:

a | b | c

A | AA | 1
A | AA | 0
B | BA | 1
C | CB | 1

Ich würde gern ein select auf alle spalten machen, die den gleichen wert in der spalte a und b haben. tja. nur wie?!!?

Es müssten dann die ersten beiden zeilen der tabelle rauskommen.

A | AA | 1
A | AA | 0

danke für eure hilfe!

2.223 Beiträge seit 2005
vor 17 Jahren

moin

vileicht bin ich blind aber wo sind die werte denn 'gleich'

mfg

C
cb666 Themenstarter:in
19 Beiträge seit 2006
vor 17 Jahren

OK!

Sie unterscheiden sich nur in der Spalte C!
Ich würde gern in einem SELECT alle Daten holen, die in Spalte A und B gleich sind.

121 Beiträge seit 2006
vor 17 Jahren
select distinct a, b from deinetabelle

holt sich die Gesamtanzahl der Kombinationen.
Dieses Resultat kannst du dann im 2. Schritt verwenden, um den jeweils 1. Datensatz davon zu holen.

select top(1) a, b, c, from deinetabelle ...

Ich glaub man kann es mit einem Join oder mit Nesting schaffen, das in ein Statement zu packen. Hab aber grad kein Beispiel zur Hand. Sollte aber gehn.

Gruß Hape

N
4.644 Beiträge seit 2004
vor 17 Jahren
SELECT t.* FROM deineTabelle t INNER JOIN 
( SELECT a, b FROM deineTabelle GROUP BY a, b HAVING COUNT(a) > 1 AND COUNT(b) > 1 ) q
ON t.a = q.a AND t.b = q.b
121 Beiträge seit 2006
vor 17 Jahren

Hi Noodles,
ist das äquivalent? (nur interessehalber)

SELECT a, b FROM deineTabelle GROUP BY a, b HAVING COUNT(a) > 1 AND COUNT(b) > 1 

und

select distinct a, b from deinetabelle

Gruß Hape

830 Beiträge seit 2005
vor 17 Jahren

Hallo hape,

ich denke wohl eher nicht, weil der Wert der Spalte c doch verloren geht, oder?

Gruss
Friedel

Ohne Ziel ist auch der Weg egal.

N
4.644 Beiträge seit 2004
vor 17 Jahren

@hape

Du bekommst so alle Zeilen genau einmal zurück.

121 Beiträge seit 2006
vor 17 Jahren

ja, ich frage mich, ob

SELECT a, b FROM deineTabelle GROUP BY a, b HAVING COUNT(a) > 1 AND COUNT(b) > 1 und select distinct a, b from deinetabelle äquivalent sind.

Von Spalte c ist in beiden Fällen keine Spur.....
Gruß Hape

T
243 Beiträge seit 2006
vor 17 Jahren

@ cb666: 'A' ungleich 'AA', also sind Spalte a und b nie gleich!

N
4.644 Beiträge seit 2004
vor 17 Jahren

@typhos
'A' == 'A' und 'AA' == 'AA', also sind die Zeilen unter der Bedingung gleich!

T
243 Beiträge seit 2006
vor 17 Jahren

Ah, danke! Dann habe ich das den gleichen wert in der spalte a und b haben falsch verstanden.

Sorry!!