dedlfix: mysql: Mehrfacheinträge, Sonderfälle

Beitrag lesen

Tach!

Ich suche doppelte Einträge einer Artikelliste:

SELECT Artikelnummer , Artikelbezeichnung , Lieferant , COUNT( ID ) AS cnt
FROM artikel
GROUP BY Lieferant,Artikelnummer
HAVING cnt >1

Zeigt mir Anzahl und Artikel an, der mehrfach vorhanden ist.

Eine GROUP-BY-Abfrage, bei der weitere Felder als in der GROUP-BY-Klausel angegeben ohne Aggregatfunktion in der SELECT-Klausel verwendet werden, wird nur von MySQL toleriert. Die nicht eindeutig lösbare Frage dabei wäre nämlich, aus welchem der Datensätze der Gruppe soll der Feldinhalt genommen werden? Das geht nur dann problemlos, wenn die Inhalte alle gleich sind, weil MySQL sich irgendeinen Datensatz nimmt. Dann hätte man aber auch darüber gruppieren können.

Nun würde ich mir aber gerne die Einträge anzeigen lassen, in denen der Artikel-VK der mehrfachen Einträge unterschiedlich ist.

Erstell eine zweite Abfrage, mit dem Ergebnis der ersten als Bedingung. Eine Subquery in einem IN() schwebt mir da als Lösung vor. Das erfordert aber, dass die Subquery nur ein Feld liefert.

dedlfix.