1. Dashboard
  2. Forum
    1. Unerledigte Themen
  3. Mitglieder
    1. Letzte Aktivitäten
    2. Benutzer online
    3. Team-Mitglieder
    4. Trophäen
    5. Mitgliedersuche
  4. Tutorial Bereich
  • Anmelden
  • Registrieren
  • Suche
Dieses Thema
  • Alles
  • Dieses Thema
  • Dieses Forum
  • Seiten
  • Forum
  • Lexikon
  • Erweiterte Suche
  1. Informatik Forum
  2. Webmaster & Internet
  3. Entwicklung

DB -> Queryproblem

    • Frage
  • lEn00x
  • 20. Mai 2005 um 08:59
  • Unerledigt
  • lEn00x
    8
    lEn00x
    Mitglied
    Reaktionen
    1
    Punkte
    551
    Beiträge
    76
    • 20. Mai 2005 um 08:59
    • #1

    Hallo!

    Das ist jetzt zwar keine programmierfrage, aber ich denke es passt am besten in dieses forum:

    Ich verwende MySQL 4.0.x und habe ein Query in der Form:

    SQL
    SELECT OpenPrice,ClosePrice,DATE_FORMAT(CaptureDate,  '%Y-%m'  )  AS CaptureDate, sum(Volumen) AS Volumen 
    FROM abc 
    WHERE CaptureDate>='2004-05-20 00:00:00' AND CaptureDate<='2005-05-20 23:59:59' 
    GROUP BY CaptureDate 
    ORDER BY CaptureDate

    Wenn ich das query jetzt auf folgende Daten anwende

    Code
    Volumen, OpenPrice, ClosePrice, CaptureDate
     10 238.5	  239.05	  2005-05-04 00:00:00
    12 238.1 	 200.01	  2005-05-03 00:00:00
    22 239.5 	237.55 	2005-05-02 00:00:0

    dann bekomme ich als ergebnis

    Code
    44 239.5 	237.55 	2005-05


    Ich möchte aber

    Code
    44 238.5 239.05 2005-05

    Kann mir da jemand helfen? MySQL 4.0 unterstützt leider keine Subqueries...

  • Fup
    12
    Fup
    Mitglied
    Punkte
    1.460
    Beiträge
    291
    • 20. Mai 2005 um 13:45
    • #2

    Ich weiß nicht genau, welche Lösung du haben möchtest, aber mir sind ein paar Sachen aufgefallen:

    • es müssen allen Spalten gruppiert werden (bis auf die, auf die Aggregatfunktionen angewendet werden)
    • verwende evt. BETWEEN ... AND ...
    • evt. hilft dir eine weitere Aggregatfunktion wie MIN(OpenPrice) weiter

    mfG Fup

  • lEn00x
    8
    lEn00x
    Mitglied
    Reaktionen
    1
    Punkte
    551
    Beiträge
    76
    • 20. Mai 2005 um 20:43
    • #3
    Zitat von Fup

    Ich weiß nicht genau, welche Lösung du haben möchtest, aber mir sind ein paar Sachen aufgefallen:

    • es müssen allen Spalten gruppiert werden (bis auf die, auf die Aggregatfunktionen angewendet werden)
    • verwende evt. BETWEEN ... AND ...
    • evt. hilft dir eine weitere Aggregatfunktion wie MIN(OpenPrice) weiter

    ad 1.) MySQL ist da nicht so streng :winking_face:
    ad 2.) das hilft mir auch nicht weiter, da es nur zeilen rausfiltert. ich müsste aber die gruppierung steuern.
    ad 3.) das hilft leider nicht, da ich den letzten satz (kann also max, min oder auch irgendwas dazwischen sein) brauche.

  • seiti
    4
    seiti
    Mitglied
    Punkte
    165
    Beiträge
    29
    • 21. Mai 2005 um 10:19
    • #4

    ich würd das ganze einfach auf 2 queries aufteilen - du hast ja auch 2 unterschiedliche fragestellungen (wenn ich's richtig verstanden hab):

    1. das volumen aller posten im zeitraum xy
    2. open/close price des (zeitmäßig) ersten postens im zeitraum xy

    bei deinem bsp. ist das problem, dass du gruppierst und order by erst nach der gruppierung wirken kann (es würde die gruppen (wenn es meherere davon gäbe)ordnen) - mysql spuckt dir dadurch, dass du nicht aggregierst, einfach die attribut-werte vom letzten zutreffenden datensatz aus.

  • lEn00x
    8
    lEn00x
    Mitglied
    Reaktionen
    1
    Punkte
    551
    Beiträge
    76
    • 21. Mai 2005 um 12:39
    • #5
    Zitat von seiti

    ich würd das ganze einfach auf 2 queries aufteilen - du hast ja auch 2 unterschiedliche fragestellungen (wenn ich's richtig verstanden hab):

    1. das volumen aller posten im zeitraum xy
    2. open/close price des (zeitmäßig) ersten postens im zeitraum xy

    bei deinem bsp. ist das problem, dass du gruppierst und order by erst nach der gruppierung wirken kann (es würde die gruppen (wenn es meherere davon gäbe)ordnen) - mysql spuckt dir dadurch, dass du nicht aggregierst, einfach die attribut-werte vom letzten zutreffenden datensatz aus.

    deine vermutung sehe ich auch so. werde dann wohl deinen vorschlag mit den 2 queries implementieren.

  • Maximilian Rupp 27. Dezember 2024 um 12:06

    Hat das Thema aus dem Forum Programmieren nach Entwicklung verschoben.

Jetzt mitmachen!

Sie haben noch kein Benutzerkonto auf unserer Seite? Registrieren Sie sich kostenlos und nehmen Sie an unserer Community teil!

Benutzerkonto erstellen Anmelden

Rechtliches

Impressum

Datenschutzerklärung