DISTINC, aber mehrere Spalten

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

  • DISTINC, aber mehrere Spalten

    ich möchte in einer tabelle die Ausgabe nach einer Spalte sortieren, die anderen Spalten sollen aber trotzdem angezeigt werden.

    Beispiel:
    SELECT DISTINCT spalte01 FROM tabelle01 ORDER BY spalte01

    mit diesem Befehl lasse ich mit doppelte Datensätze immer nur einmal anzeigen, allerdings bekomme ich es nicht hin, andere Spalten mit auszugeben, die nicht von DISTINCT betroffen sein sollen.

    Idee ??

    gruss

  • #2
    DISTINCT

    Die anzuzeigenden Spalten müssen natürlich ebenfalls im SQL-Statement aufgeführt sein.
    Nach Spalte01 muss dann Spalte02,Spalte03 usw stehen. Das sollte dann funktionieren.
    Grüsse

    Comment


    • #3
      DISTINCT bezieht sich immer auf sämtliche Spalten der Query:

      DISTINCT and DISTINCTROW are synonyms and specify that duplicate rows in the result set should be removed.
      carpe noctem

      [color=blue]Bitte keine Fragen per EMail ... im Forum haben alle was davon ... und ich beantworte EMail-Fragen von Foren-Mitgliedern in der Regel eh nicht![/color]
      [color=red]Hinweis: Ich bin weder Mitglied noch Angestellter von ebiz-consult! Alles was ich hier von mir gebe tue ich in eigener Verantwortung![/color]

      Comment


      • #4
        ich bin der meinung, du meinst nicht
        select distinct, denn das entfernt alle mehrfachen tupeln einer relation, sondern group by (alle tupel werden um eine spalte gruppiert)
        distinct reduziert von der semantik her, wie bereits erwähnt, die relation um ganze Reihen

        willst du 3 spalten auswählen, wo bei die erste nicht doppelt vorkommen soll, wäre das z.B.:

        select r.spalte1,d.spalte2,d.spalte3 from r,d where [Bedingung] group by r.spalte1

        hieraus ist bereits ersichtlich, dass das ganze natürlich nur funktioniert, wenn die anderen Spaltenwerte für jeden Eintrag von r.spalte1 identisch sind (z.B. bei Verbunden zwischen Tabellen), bzw. eine Aggregatfunktion verwendet wird.

        z.B.: select r.kundennummer,count(r.bestellungID) from r where kundennummer = $kunde group by r.kundennummer (aggregatfunktion, zählt bestellungen pro kunde)






        hopeThatHelps
        Last edited by shabby; 25-05-2002, 23:41.

        Comment

        Working...
        X