Thread Verfasser: John Doe
Thread ID: 759
Thread Info
Es gibt 10 Beiträge zu diesem Thema, und es wurde 3908 Mal angesehen.
 Thema drucken
sql - Abfrage virtueller Aktienmarkt
John Doe
Brauche aus einer Tabelle mit den Tagesständen von Aktienmärkten den jeweils letzten Stand für alle Märkte. Die Stände sind nicht sortiert gespeichert, so dass die Reihenfolge immer unterschiedlich sein kann. Daher geht es nicht die letzten XX-Datensätze zu lesen.

Tabelle:
stockid, stockdatetime,stockname,stockactvalue, stocklastvalue,...

In Stockname ist der Markt-Name des Aktienmarktes, stockdatetime = zeitstempel, stockactvalue der Stand des Marktes.

Es werden nicht alle Marktstände nach einander gespeichert, da immer nur der Tageshöchststand gespeichert wird.
 
SuNflOw
Hallo,
ich habe es nicht ganz verstanden. Kannst du einen Auszug aus deiner Tabelle hier posten und dann markieren was du willst?

lG,
SuN
________________________________________________
I got my swim trunks and my Flippie-Floppies *-*
 
John Doe
Ich lese die Namen der einzelnen Märkte aus der Tabelle aus:
SELECT stockname FROM ".DB_JSH_VSM_STOCKNAME." GROUP BY `stockname` ORDER BY `stockname`

Für jeden Datensatz muss ich nun einzelnd die letzten Einträge des Gesamtwertes des Marktes aus der gleichen Tabelle lesen.

SELECT stockid, stockname, stockdatetime, stock....FROM ".DB_JSH_VSM_STOCKNAME." WHERE `stockname`='$gruppe' ORDER BY `stockid` DESC LIMIT 1

$gruppe ist aus Ergebnis der 1. Abfrage genommen. Statt stockid würde bei Abfrage 2 auch stockdatetime (größter Wert) gehen.

Dies wollte ich elegant in einer Abfrage lösen.
Hab mit DISTINCT, GROUP BY usw. probiert, aber kein richtiges Ergebnis bekommen.
 
SuNflOw
Hallo,
probier mal:

Code 

SELECT *, MAX(stockid) FROM ".DB_JSH_VSM_STOCKNAME." GROUP BY stockname


________________________________________________
I got my swim trunks and my Flippie-Floppies *-*
 
John Doe
Nein geht nicht.
 
SuNflOw
Sorry aber geht das genauer?
________________________________________________
I got my swim trunks and my Flippie-Floppies *-*
 
John Doe
Ich muss ein Beispiel inkl. Inhalt der Tabelle zeigen, sonst wird das nichts.
Kommt bei Gelegenheit.

Zusammengefügt am 03. Februar 2016 um 21:07:56:
Wer sich das mal anschauen will. Hier als Film ohne Ton.
http://www.jsharms.de/web_a/docs/prob...em_vsm.mp4

Heute ist z. B. bei den letzten Einträgen GAME unter den 5 letzten doppelt. Danach stimmen die Werte nicht mehr.
Links die richtigen Werte. In der Tabell nach der o.g. Abfrage die falschen Werte.
Bearbeitet von John Doe am 03.02.2016 um 21:07
 
SuNflOw
Hallo,
ich habe einen neuen Query ausgetüftelt vielleicht geht der:

Code 

SELECT * FROM (SELECT * FROM ".DB_JSH_VSM_STOCKNAME." ORDER BY stockname, stockvalue DESC) as x GROUP BY stockname


________________________________________________
I got my swim trunks and my Flippie-Floppies *-*
 
John Doe
Geht auch nicht. Aber lass gut sein. Bei der kleinen Anzahl von Märkten gehts auch so. Gibt wichtigeres für dich zu tun. Mach lieber noch ein paar Themes Smile
 
SuNflOw
Na gut Sad Tut mir leid...

Und bin ich schon dabei razz
________________________________________________
I got my swim trunks and my Flippie-Floppies *-*
 
Springe ins Forum: