none
Selektion über mehrere Spalten ohne duplikate in einer einzelnen Spalte RRS feed

  • Frage

  • Hallo miteinander,

    ich könnte einmal Hilfe gebrauchen, da an einem Punkt nicht weiterkomme.

    Ich möchte aus einer Adresstabelle alle Datensätze ohne Duplikate in der Spalte EMail selektieren.

    Mein Ansatz:

    Select Nr,EMail,Nachname,Vorname,Anrede from Adressen 
    Where EMail Like '%@%' group by EMail ORDER BY NULL

    Das schlägt fehl, da die Group-Clausel alle Select-Felder enthalten muss.

    Wer kann helfen?

    Mittwoch, 29. Januar 2014 15:54

Antworten

  • Hi,

    ich bin aufgrund deiner fehlenden Beschreibung nicht sicher, welches Ergebnis Du nun haben willst. Letztendlich hast Du drei Möglichkeiten.

    SELECT   DISTINCT
             Nr,
             EMail,
             Nachname,
             Vorname,
             Anrede
    FROM     Adressen 
    WHERE    EMail LIKE '%@%'
    ORDER BY EMail
    

    oder

    SELECT   MIN( Nr ) AS Nr,
             EMail,
             MIN( Nachname ) AS Nachname,
             MIN( Vorname ) AS Vorname,
             MIN( Anrede ) AS Anrede
    FROM     Adressen 
    WHERE    EMail LIKE '%@%'
    GROUP BY EMail
    ORDER BY EMail
    

    oder

    SELECT   Nr,
             EMail,
             Nachname,
             Vorname,
             Anrede
    FROM     Adressen 
    WHERE    EMail LIKE '%@%'
    ORDER BY Nr,
             EMail,
             Nachname,
             Vorname,
             Anrede
    

    wobei letzteres ein identisches Ergebnis zur ersten Abfrage bringen sollte.

    Um die aber nun sagen zu können, welche Abfrage für dich die passende wäre, müsstest Du uns erstmal sagen, was genau Du nun als Ergebnis haben möchtest.

    Poste daher doch bitte mal einige Beispieldaten und das gewünschte Ergebnis der Abfrage.


    Gruß, Stefan
    Microsoft MVP - Visual Developer ASP/ASP.NET
    http://www.asp-solutions.de/ - Consulting, Development
    http://www.aspnetzone.de/ - ASP.NET Zone, die ASP.NET Community

    • Als Antwort markiert KaFie Mittwoch, 29. Januar 2014 19:30
    Mittwoch, 29. Januar 2014 18:49
    Moderator

Alle Antworten

  • Hi,

    ich bin aufgrund deiner fehlenden Beschreibung nicht sicher, welches Ergebnis Du nun haben willst. Letztendlich hast Du drei Möglichkeiten.

    SELECT   DISTINCT
             Nr,
             EMail,
             Nachname,
             Vorname,
             Anrede
    FROM     Adressen 
    WHERE    EMail LIKE '%@%'
    ORDER BY EMail
    

    oder

    SELECT   MIN( Nr ) AS Nr,
             EMail,
             MIN( Nachname ) AS Nachname,
             MIN( Vorname ) AS Vorname,
             MIN( Anrede ) AS Anrede
    FROM     Adressen 
    WHERE    EMail LIKE '%@%'
    GROUP BY EMail
    ORDER BY EMail
    

    oder

    SELECT   Nr,
             EMail,
             Nachname,
             Vorname,
             Anrede
    FROM     Adressen 
    WHERE    EMail LIKE '%@%'
    ORDER BY Nr,
             EMail,
             Nachname,
             Vorname,
             Anrede
    

    wobei letzteres ein identisches Ergebnis zur ersten Abfrage bringen sollte.

    Um die aber nun sagen zu können, welche Abfrage für dich die passende wäre, müsstest Du uns erstmal sagen, was genau Du nun als Ergebnis haben möchtest.

    Poste daher doch bitte mal einige Beispieldaten und das gewünschte Ergebnis der Abfrage.


    Gruß, Stefan
    Microsoft MVP - Visual Developer ASP/ASP.NET
    http://www.asp-solutions.de/ - Consulting, Development
    http://www.aspnetzone.de/ - ASP.NET Zone, die ASP.NET Community

    • Als Antwort markiert KaFie Mittwoch, 29. Januar 2014 19:30
    Mittwoch, 29. Januar 2014 18:49
    Moderator
  • Hallo Stefan,

    vielen Dank.

    Dein 2. Vorschlag war genau der Anstoß den ich brauchte.


    KaFie

    Mittwoch, 29. Januar 2014 19:33