Willkommen bei Entwickler-Forum.
Ergebnis 1 bis 4 von 4
  1. #1
    Stammgast
    Registriert seit
    31.10.2007
    Beiträge
    180

    Standard Doppelte Artikelnummern in DB finden

    Hallo zusammen,

    ich möchte in einer SQL DB in ein einer Tabelle mit Artikeln alle Artikel finden die die selbe Hersteller-Artikelnummer oder die selbe EAN haben.
    Die Daten sind aus mehreren Listen zusammengeführt worden. Daher können Bezeichnung usw. des eigentlich selben Artikels
    unterschiedlich sein. Filtern kann ich nur über die EAN und die Hersteller-Artikelnummer.

    So bekomme ich zwar die mehrfachen Einträge der Hersteller-Artikelnummer, möchte aber auch die Felder Bezeichnung und Zusatz sehen. Diese
    kann ich allerdings nicht mit gruppieren da die Feldinhalte unterschiedlich sein können.

    PHP-Code:
    SELECT [HstArtikelnummer] , COUNT([HstArtikelnummer] ) AS Artnrex
    FROM art
    GROUP BY 
    [HstArtikelnummer]
    HAVING COUNT([HstArtikelnummer]) > 
    Wie kann ich meine Abfrage dazu bewegen auch die Felder Bezeichnung und Zusatz mit anzuzeigen?

    Gruß Nevada

  2. #2

  3. #3
    Stammgast
    Registriert seit
    24.10.2011
    Beiträge
    1.291

    Standard

    Nur als Erklärung noch dazu, das Group by gruppiert natürlich auch die Werte, die man eigentlich nur mit ausgeben will. Sind diese mehrdeutig, "zerstören" sie die Gruppierung der Dubletten.

    Da SQL nur Mengen basiert arbeitet, ist die Vorgehensweise dann z.B. so:
    Gib mir die Menge der Mehrfachvorkommen für feldxy,
    joine diese Menge mit den Bestandsdaten über das das feld xy zurück,
    (filtere evtl. aus dieser Menge uninteresannte aus)
    Gebe alle weiteren Bestandsfelder aus, die interessieren

    Damit hat man dann die Datenbasis zur Verarbeitung von Dubletten.
    Gruß, defo

  4. #4
    Stammgast
    Registriert seit
    23.04.2011
    Ort
    Zürich
    Beiträge
    435

    Standard

    defo gab die Erklärung, als SQL sieht es dann ungefähr so aus:


    Code:
     
    SELECT [Bezeichnung], [Zusatz]
    FROM art
    WHERE [HstArtikelnummer] IN (
        SELECT [HstArtikelnummer]
        FROM art
        GROUP BY [HstArtikelnummer]
        HAVING ( COUNT([HstArtikelnummer]) > 1 ) 
        )
    Gruss

 

 

Lesezeichen

Berechtigungen

  • Neue Themen erstellen: Nein
  • Themen beantworten: Nein
  • Anhänge hochladen: Nein
  • Beiträge bearbeiten: Nein
  •