Announcement

Collapse
No announcement yet.

Problem mit SELECT DISTINCT

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

  • Problem mit SELECT DISTINCT

    Hallo,

    irgendwie stehe ich glaub grad auf dem Schlauch - oder es geht wirklich nicht.

    Ich habe in etwa folgende Einträge in meiner Tabelle:
    Nummer Name
    ---------- --------
    5 Hans
    5 Hans_
    7 Peter
    8 Klaus
    9 Petra
    9 Petra xy

    Nun möchte ich aber nur einmal die Nummer angezeigt bekommen und den ersten Namenseintrag.
    Mit SELECT DISTINCT bekomme ich eben immer oben angezeigtes Ergebnis.

    An der Tabellenstruktur kann ich nichts ändern - und in die Tabelle in die ich die selektierten Einträge übertragen möchte, ist das Nummernfeld der Primärschlüssel, d.h. zweimal der Eintrag 5 ist nicht erlaubt.

    Hat jemand eine Idee? Würde mich sehr freuen!
    Danke Euch!

  • #2
    Im SQL Server

    [Highlight=SQL]
    select distinct Nummer,
    (select Top 1 Name from MeineTabelle i where i.Nummer = o.Nummer)
    from MeineTabelle o[/Highlight]

    Comment


    • #3
      oder ...
      Bei "doppelten" Datensätzen nur einen anzeigen

      Gruß Falk
      Wenn du denkst du hast alle Bugs gefunden, dann ist das ein Bug in deiner Denksoftware.

      Quellcode ohne ein Mindestmaß an Formatierung sehe ich mir nicht an! Ich leiste keinen Privatsupport per Mail oder PN!

      Comment


      • #4
        Super - vielen Dank! Das hat soweit geklappt.

        Nun würde ich aus dem SELECT Statement gerne noch zwei Werte ausschließen?
        Ist dies möglich. Hier mein versuch, der aber leider nicht funktioniert. Ich verwende MySQL.

        SELECT a.ident, a.ben1
        FROM pwdata a
        WHERE a.iid = (
        SELECT max(b.iid)
        FROM pwdata b
        WHERE .ident = a.ident
        )
        AND a.ident NOT LIKE '%0241.%'
        AND a.ident NOT LIKE '%0325.%'
        GROUP BY a.ident, a.ben1, iid

        Comment


        • #5
          Ach ja, wie kan ich den Code als SQL-Code posten?

          Comment


          • #6
            http://entwickler-forum.de/showthread.php?t=42101

            Comment


            • #7
              Originally posted by Bonaqua View Post
              Hier mein versuch, der aber leider nicht funktioniert. Ich verwende MySQL.
              Und was ist das Ergebnis, das MySQL zurückgibt?
              "Das funktioniert leider nicht?"
              Gruß, defo

              Comment


              • #8
                Danke für den Link.

                Hier die Fehlermeldung:
                SQL Error (1064): You have an Error in your SQL syntax; .... near ' = a.ident )
                AND a.ident NOT LIKE '%0241.%'
                AND a.ident NOT LIKE at line 6

                Comment


                • #9
                  Fehlt da nicht was vor dem einsamen Punkt.

                  [Highlight=SQL]
                  ...
                  FROM pwdata b
                  WHERE .ident = a.ident
                  ...[/Highlight]

                  Comment


                  • #10
                    ... und wofür ist das GROUP BY? Du verwendest in der äusseren Abfrage keine Aggregatfunktionen also wozu die Gruppierung?

                    Gruß Falk
                    Wenn du denkst du hast alle Bugs gefunden, dann ist das ein Bug in deiner Denksoftware.

                    Quellcode ohne ein Mindestmaß an Formatierung sehe ich mir nicht an! Ich leiste keinen Privatsupport per Mail oder PN!

                    Comment


                    • #11
                      Fehlt da nicht was vor dem einsamen Punkt.
                      Danke! Das war das Problem!

                      ... und wofür ist das GROUP BY? Du verwendest in der äusseren Abfrage keine Aggregatfunktionen also wozu die Gruppierung?
                      Das stimmt natürlich. Da ich in der Abfrage davor außerdem noch auf max(iid) abgefragt habe, hab ich es nun leider vergessen zu löschen. Danke!

                      Comment

                      Working...
                      X