Announcement

Collapse
No announcement yet.

Query für Sortierungsproblem gesucht

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

  • Query für Sortierungsproblem gesucht

    Hallo,
    ich habe ein Problem, bei dem ich leider nicht weiss, wie ich die richtige query definiere. Ich hoffe, ihr könnt mir helfen.

    Dies ist die Ausgangstabelle (sortiert nach time)
    [highlight=sql]
    account operation time
    1066177740 I 24-JUL-08 01.37.50.784421000 PM
    1586172476 I 24-JUL-08 01.38.11.351796000 PM
    1586172476 U 24-JUL-08 01.43.40.341871000 PM
    1066177740 U 24-JUL-08 01.44.25.318726000 PM
    1216695268 I 24-JUL-08 03.53.25.112799000 PM
    1216695268 U 24-JUL-08 03.59.49.632021000 PM
    1216695268 D 24-JUL-08 03.59.59.632021000 PM[/highlight]
    ziel ist es, dass alle gleichen accountnummern untereinander auftauchen sollen für 1066177740 ist das in obiger tabelle ja nicht der fall. ausserdem soll die sortierung etwas angepasst werden:
    tupel mit gleicher accountnummer bilden für sich eine eigene "gruppe" in der sie lokal aufsteigend sortiert werden sollen.
    Die ganzen gruppen sollen dann nach dem maximalen zeit aus der jeweiligen gruppe global sortiert werden

    Das erste tupel aus obriger tabelle rückt also an position 3. die beiden tupel mit 1066177740 bilden eine gruppe desen maximale time 01.44.25.318726000 PM ist. diese soll dann halt noch mit den maximalen zeiten der beiden gruppen für 1586172476 und 1216695268 verglichen werden, um die richtige reihenfolge für die gruppen zu erhalten.
    das endergebnis müsste so aussehen:

    [highlight=sql]
    account operation time
    1586172476 I 24-JUL-08 01.38.11.351796000 PM
    1586172476 U 24-JUL-08 01.43.40.341871000 PM
    1066177740 I 24-JUL-08 01.37.50.784421000 PM
    1066177740 U 24-JUL-08 01.44.25.318726000 PM
    1216695268 I 24-JUL-08 03.53.25.112799000 PM
    1216695268 U 24-JUL-08 03.59.49.632021000 PM
    1216695268 D 24-JUL-08 03.59.59.632021000 PM[/highlight]

    wie müsste als die query dazu aussehen?

  • #2
    Vielleicht so?

    Select t1.account,t1.operation,t1.time, max(t2.time) as mtime
    From tabelle t1, tabelle t2
    Where t1.account=t2.account
    Group by t1.account,t1.operation,t1.time
    Order by mtime, t1.account,t1.time
    (Ungetestet ohne Garantie)

    Gruß
    docendo discimus

    Comment


    • #3
      Originally posted by frauwue View Post
      Vielleicht so?

      Select t1.account,t1.operation,t1.time, max(t2.time) as mtime
      From tabelle t1, tabelle t2
      Where t1.account=t2.account
      Group by t1.account,t1.operation,t1.time
      Order by mtime, t1.account,t1.time
      (Ungetestet ohne Garantie)

      Gruß
      Perfekt!! Vielen Dank! Da konnte ich wieder ein bisschen dazu lernen

      Comment

      Working...
      X