none
Subselect, mehrere Felder RRS feed

  • Frage

  • Hallo,

    ich möchte gerne, dass bei einem Subselect mehrere Felder geprüft werden,also Kombinationen von Felder.
    Wird also im Subselect ein Paar Artikelnummer+Lieferantennummer gefunden,
    so möchte ich im Hauptselect alle Datensätze mit dieser Kombination finden.

    Logisch wäre dieser Select, er geht aber nicht:
    Jemand eine Idee?

    select

     * from [ArtikelStammdaten] where (Artikelnummer,Lieferantennummer) IN(select Artikelnummer,Lieferantennummer, count(*) As Anzahl from [ArtikelStammdaten] group by Artikelnummer,Lieferantennummer having count(*) > 1);

    Mittwoch, 27. Februar 2013 11:38

Alle Antworten

  • Anstatt IN solltest du EXISTS verwenden.

    -- Frank Kalis Microsoft SQL Server MVP Webmaster: http://www.insidesql.org

    Mittwoch, 27. Februar 2013 11:52
  • Oder Du vewendest eine CTE und Joins darüber:

    ;WITH cte AS
        (Select Artikelnummer,Lieferantennummer
         from [ArtikelStammdaten] 
         group by Artikelnummer,Lieferantennummer 
         having count(*) > 1)
    
    select * 
    from [ArtikelStammdaten] AS ART
         INNER JOIN
         cte ON ART.Artikelnummer = cte.Artikelnummer
                AND ART.Lieferantennummer = cte.Lieferantennummer


    Olaf Helper

    Blog Xing

    Mittwoch, 27. Februar 2013 11:54