Wie Prüfschleife bauen?

IchHH

Datenbank-Guru
Beiträge
282
Hallo,

ich habe heute folgendes Problem.

Ich möchte gerne prüfen ob in Spalte A ein Wert doppelt vorhanden ist und möchte dann mir nur die Datensätze anzeigen lassen die bei Gleicher Wert in der A Spalte einen Unterschied in der B Spalte aufweisen.

Ich hatte erst den Ansatz verfolgt mit einen Abgleich, wie hier:
Code:
Having #tmp.[IB] <> COUNT([Nachname])

Die Fehlermeldung dann war aber
Fehler beim Konvertieren des varchar-Werts 'DI02' in den int-Datentyp.

Vielleicht habt ihr einen Ansatz für mich.

Danke.
 
Werbung:
Du hast:

Code:
test=*# select * from ich_hh ;
 a | b
---+---
 1 | 1
 1 | 2
 2 | 2
 3 | 3
 3 | 3
(5 Zeilen)

test=*#

Wert in a dopplet und gleichzeitig unterschiedliche Werte in b:

Code:
test=*# select a,b from ich_hh where a in (select a from ich_hh group by a having count(*) > 1) group by a,b having count(*) = 1;
 a | b
---+---
 1 | 1
 1 | 2
(2 Zeilen)

test=*#

PostgreSQL, aber eigentlich alles Standard-SQL. Sollte also portabel sein.
 
Interessant der Code und auch verständlich, klappt nur leider nicht.

Ich habe zwischenzeitlich eine Lösung gefunden, die aber leider sub optimal weil ich nicht in der Lage bin noch zusätzliche Zeilen anzeigen zu lassen ausser die Spalte a + b.

Mein Code zur Einschränkung sieht aber wie folgt aus:

Code:
Select a,b
from #tmp
Group by a,6
Having Count(Concat(a,b))=1

Wie aber bekomme ich nun zusätzliche Spalten angezeigt die aber keine Auswirkung auf die Filterung haben soll?
 
Werbung:
Zurück
Oben