| 

.NET C# Java Javascript Exception

0
Hallo, ich brauche aus einer MYsql Tabelle die Umsätze für einen bestimmten Artikel und diese Umsätze sollen gruppiert a 30 Minuten angezeigt werden.
die zeit ist als timestamp in der DB hinterlegt!
BSP:
artikel|umsatz|zeit
wasser 10€ 20:30 UHR
wasser 15€ 21:00 UHR
wasser 8€ 22:00 UHR
wasser 6€ 22:30 UHR

Wie muss die Abfrage lauten, um diese ausgabe so zu ermöglichen??
Um die Werte je Stunde zu Gruppieren hab ich folgende Abfrage:
SELECT artikel, sum(einzelpreis)as umsatz,(SELECT Hour(timestamp)) as time FROM `umsatz` WHERE eventtag='2011-08-17' AND artikel='Wasser' group by time

Besten Dank im voraus!
News:
22.09.2011
Gast
23 3
2 Antworten
1
Funktioniert das:
SELECT artikel, sum(einzelpreis)as umsatz,
FROM_UNIXTIME(FLOOR(UNIX_TIMESTAMP(timestamp)/1800)*1800) as time FROM `umsatz` WHERE eventtag='2011-08-17' AND artikel='Wasser' group by time


Bin mir nicht sicher, ob puls200 das gemeint hat.
22.09.2011
carlptr 777 7
So ist es.. das ist jetzt die cut&paste Lösung ;-)
puls200 23.09.2011
Hey danke, an beide...war genau das richtige!!
– Gast 23.09.2011
1
Eine Idee (statt vorgefertiger Abfrage):

1) Konvertiere den timestamp nach Sekunden (mit UNIX_TIMESTAMP())
2) Runde diesen Wert auf den gewünschten Intervall (hier 1800)
3) Konvertiere diesen Wert wieder in einen Timestamp (FROM_UNIXTIME())
4) Gruppiere nach dem erhaltenen Wert

Viel Glück,
Daniel
22.09.2011
puls200 3,3k 6
Danke, werde es mal versuchen..
– Gast 22.09.2011

Stelle deine Mysql-Frage jetzt!