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
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
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