1. Weiterleitung zu NetzLiving.de
  2. Forum
    1. Unerledigte Themen
  3. zum neuen Forum
  • Anmelden
  • Suche
Dieses Thema
  • Alles
  • Dieses Thema
  • Dieses Forum
  • Seiten
  • Forum
  • Erweiterte Suche
  1. Informatik Forum
  2. Webmaster & Internet
  3. Entwicklung

DB -> Queryproblem

    • Frage
  • lEn00x
  • 20. Mai 2005 um 08:59
  • Unerledigt
Hallo zusammen,

das Informatik-Forum geht in den Archivmodus, genaue Informationen kann man der entsprechenden Ankündigung entnehmen. Als Dankeschön für die Treue bekommt man von uns einen Gutscheincode (informatikforum30) womit man bei netzliving.de 30% auf das erste Jahr sparen kann. (Genaue Infos sind ebenfalls in der Ankündigung)

Vielen Dank für die Treue und das Verständnis!
  • lEn00x
    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
    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
  • lEn00x
    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 ;)
    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
    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
    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.

  1. Datenschutzerklärung
  2. Impressum