[MS-SQL]Doppelte Datensätze herausfiltern?

Von: , Frage gestellt am Mi, 13. Sep 2000

Ich möchte mir nur doppelte Datensätze aus einer Datenbank anzeigen lassen und benötige die passende SQL dafür.

Also wenn das Feld Artikelnummer (oder andere) 2 oder 3 oder mehrmals vorkommende gleiche Artikelnummern in der Tabelle Artikelnummern hat, dann möchte ich mir diese Datensätze Anzeigen lassen, wo die Artikelnummer mehrmals vorhanden ist.

Ich hoffe mir kann jemand bei dieser Sache helfen...

Mit freundlichen Grüßen, MAJA.

4 Antworten zu dieser Frage

  1. Antwort von nach 12 Minuten hilfreich
    Re: Count(*) / Group By / Having

    Hallo Maja,

    select Artikelnummer, count(*) As Anzahl
    from Artikelnummern
    group by Artikelnummer
    having count(*) > 1;
    

    Gruß

    J. [Bei dieser Antwort wurde das Vollzitat nachträglich automatisiert entfernt]

    • Antwort von nach 19 Minuten hilfreich
      Re^2: Count(*) / Group By / Having

      select Artikelnummer, count(*) As Anzahl
      from Artikelnummern
      group by Artikelnummer
      having count(*) > 1;
      Hallo, vielen Dank für Deine schnelle Antwort, das Problem ist aber, das mir nun nur eine Zahl wiedergegeben wird.
      Ich möchte aber, dass mir der komplette Datensatz angezeigt wird, mit all seinen Unterfeldern (Artikelnummer, Einzelpreis, MwSt. etc.)

      Ich hoffe das das machbar ist.

      Mit freundlichen Grüßen, MAJA.

      • Antwort von nach einer Stunde hilfreich
        Re^3: Subselect

        select Artikelnummer, count(*) As Anzahl
        from Artikelnummern
        group by Artikelnummer
        having count(*) > 1;
        Hallo, vielen Dank für Deine schnelle Antwort, das Problem ist
        aber, das mir nun nur eine Zahl wiedergegeben wird.
        Ich möchte aber, dass mir der komplette Datensatz angezeigt
        wird, mit all seinen Unterfeldern (Artikelnummer, Einzelpreis,
        MwSt. etc.)
        Ach so, dann benutze meinen Ausdruck als Subselect:

        Select * 
        from Artikelnummern
        where Artikelnummer in(
        select Artikelnummer
        from Artikelnummern
        group by Artikelnummer
        having count(*) > 1);
        

        Das wird sicherlich nicht die Performance-Höhe sein, müßte aber funktionieren. Ich hoffe das das machbar ist.
        Machbar ist alles :)

        Gruß

        J.

        • Antwort von nach einer Stunde hilfreich
          Re^4: Subselect

          :Select *
          :  from Artikelnummern
          : where Artikelnummer in(
          :                     select Artikelnummer
          :                       from Artikelnummern
          :                      group by Artikelnummer
          :                     having count(*) > 1);
          


          Jep, thats it !!

          Vielen Dank für Deine Zusammenarbeit, ich habe die funktionale SQL meinem Kollegen zukommen lassen, der sich darüber auch sehr gefreut hat. Ein Beweis mehr für die Quallität dieses Forums !!

          Mit freundlichen Grüßen, MAJA.

Keine passende Antwort gefunden? Jetzt eigene Frage stellen!