Announcement

Collapse
No announcement yet.

Doppelte Artikelnummern in DB finden

Collapse
X
  • Filter
  • Time
  • Show
Clear All
new posts

  • 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
    https://entwickler-forum.de/showthre...einen-anzeigen
    Christian

    Comment


    • #3
      Originally posted by Christian Marquardt View Post
      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

      Comment


      • #4
        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

        Comment

        Working...
        X