Announcement

Collapse
No announcement yet.

group by min max und dazugehörige Werte

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

  • group by min max und dazugehörige Werte

    Hallo zusammen,

    ich habe folgende Tabelle:

    Startzeit (datetime), Endzeit(Datetime), Abflugsort, Ankunftsort etc.

    Pro Tag gibt es mehrere Eintragungen von Flügen und ich möchte eine Tabelle haben, die zusammengefasst nach Tagen wie folgt aussieht:

    Tag, erste Abflugzeit des Tages, letzte Ankunftszeit des Tages, erster Abflugort, letzter Ankunftsort.

    Mit group by kann ich bis auf die Abflugs- und Ankunftsorte alles so bekommen, wie ich es möchte, sieht ungefähr so aus:
    Code:
    select 
    cast(`flightspercm`.`start` as date) AS `date`,
    cast(min(`flightspercm`.`start`) as time) AS `start`,
    cast(max(`flightspercm`.`end`) as time) AS `end`,
    `flightspercm`.`crew` AS `crew` 
    from `flightlog`.`flightspercm` 
    group by cast(`flightspercm`.`start` as date)
    Jetzt fehlen mir die zugehörigen Abflugs- und Ankunftsorte und ich weiß nicht, ob ich das mit einem Join oder einer Unterabfrage machen müsste und vor allem wie.

    Vielen Dank im Voraus, Stephan

  • #2
    Hallo,

    als Denkanstoss sollte das hier eigentlich reichen: 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


    • #3
      habe mit diesem Vorschlag mal ein wenig herumprobiert und scheine tatsächlich etwas sinnvolles geschrieben zu haben, zumindest kommen die richtigen Ergebnisse dabei raus:
      Code:
      CREATE VIEW `flightlog`.`tagesumlaufe` AS
      select a.start, b.end, a.dep, b.arr, a.reg, a.crew
      from flightspercm a, flightspercm b
      where a.start = (
      select min(b.start)
      from flightspercm b
      where date(b.start) = date(a.start)) and
      b.end = (
      select max(b.end)
      from flightspercm b
      where date(b.end) = date(a.end))
      Habe ich das jetzt soweit richtig verstanden ?

      Dauert übrigens ziemlich lange, diese Berechnung, ca. 4 sec und es sind nur unter 2000 Datensätze...

      Comment

      Working...
      X