SQL: Doppelte Datensätz anhand von zwei Feldern

Hallo Zusammen,
ich habe folgendes Problem: In einer Tabelle werden verschiedene Produktionsereignisse zu einem (einzigartigen) Produkt abgelegt. Die Einzigartigkeit ist darüber defniniert, dass die Kombination von 2 Feldern übereinstimmt. In der Regel findet jedoch nur ein Produktionsereignis pro Produkt statt, so dass die manuelle Suche nach Doubletten nicht ganz einfach ist. Nun möchte ich mir nur diejenigen Datensätze (und zwar komplett mit allen Feldern) anzeigen lassen, in denen die Kombination aus Feld 1 und Feld 2 übereinstimmt (also quais die doppelt vorhandenen Einträge zu einem Produkt). Ich habe es bereits mit einem subselect versucht, kann jedoch dort nur ein Feld abfragen und nicht die Kombination.

Beispiel:
Tabelle:

Feld 1 Feld 2 Feld 3 Feld 4
123 1000 01.01.2012 Test1
123 1100 13.01.2012 Test2
456 1000 25.05.2012 Test3
123 1000 10.01.2012 Test4

Ich möchte also den ersten und letzten Datensatz angezeigt bekommen, da Feld 1 und Feld 2 übereinstimmen. Bis jetzt bin ich soweit, dass ich die ersten beiden und den letzten Datensatz angezeigt bekomme

Hat jemand eine Idee?
Danke
K.A.

Hallo,

Hat jemand eine Idee?

es geht vielleicht eleganter, aber so würde ich das auf die Schnelle machen:

SELECT Tabelle.Feld1, Tabelle.Feld2, Tabelle.Feld3, Tabelle.Feld4
FROM Tabelle INNER JOIN
(SELECT Feld1, Feld2
FROM (SELECT Feld1, Feld2, CONVERT(varchar, Feld1) + ‚.‘ + CONVERT(varchar, Feld2) AS a
FROM Tabelle AS Tabelle_1) AS Sub1
GROUP BY Feld1, Feld2
HAVING (COUNT(a) > 1)) AS Sub2 ON Tabelle.Feld1 = Sub2.Feld1 AND Tabelle.Feld2 = Sub2.Feld2

MfG
Stephan

Hallo Karl (?),
welche Datenbank nimmst du denn? Bei Oracle fallen mir da einige Möglichkeiten ein… (z.B. analytical functions)

gruss
b.

Hallo Stephan,

danke, das hat den richtigen Denkanstoss gegeben. Musste noch etwas variieren, bin jetzt aber beim Ergebnis.
Vielen Dank für die prompte Hilfe

K.A.

Es handelt sich um eine DB2-Datenbank