Ausgabe aus einer Sql Abfrage weiter bearbeiten
Ich habe eine Abfrage der Tageshöchstwerte aus einer Datenbank
die funktioniert auch prima,
aber ich würde gerne die Tagesdifferenzen errechnen,
eigentlich müsste ja diff helfen, aber ich krieg das nicht hin.
Ausgabe
die funktioniert auch prima,
aber ich würde gerne die Tagesdifferenzen errechnen,
eigentlich müsste ja diff helfen, aber ich krieg das nicht hin.
$sql = "SELECT date_format (date,'%d.%m.%Y') as Datum,
max(PV_Zaehler_Energie) as Tagesertrag,
max(Batterie_Ladezaehler_Energie) as Batt_In,
max(Batterie_Entladezaehler_Energie) as Batt_Out,
max(Strom_Bezug_Zaehler_Energie) as Bezug,
max(Strom_Einspeise_Zaehler_Energie) as Einspeisung
FROM data WHERE date >= '$fdstart' group by date(date)";
$result = @mysql_query($sql);
while ($row = @mysql_fetch_array($result,MYSQL_BOTH)){
$Datum = $row["Datum"];
$Tagesendwert = $row["Tagesertrag"];
$Batt_In = $row["Batt_In"];
$Batt_Out = $row["Batt_Out"];
$Bezug = $row["Bezug"];
$Einspeisung = $row["Einspeisung"];
echo " $Datum - $Tagesendwert - $Batt_In - $Batt_Out - $Bezug - $Einspeisung\r\n";
}
?>
27.08.2013 - 973.626 - 42.8 - 9.148 - 115031 - 225606
28.08.2013 - 1012.55 - 43.2345 - 18.766 - 289.163 - 390.677
29.08.2013 - 1043.15 - 45.8295 - 30.763 - 297.343 - 391.467
30.08.2013 - 1069.41 - 58.7085 - 44.3625 - 302.26 - 392.023
31.08.2013 - 1081.85 - 61.5585 - 50.4965 - 315.207 - 392.18
Please also mark the comments that contributed to the solution of the article
Content-Key: 215784
Url: https://administrator.de/contentid/215784
Printed on: April 19, 2024 at 12:04 o'clock
1 Comment
Hallo,
ja... und?
Ich würde das nicht in der SQL-Abfrage versuchen, sondern während der Ausgabe.
Vor dem "while ($row = @mysql_fetch_array($result,MYSQL_BOTH)){" ein $lastDayMax = 0, dann vor der Ausgabe halt die Differenz errechnen und mit ausgeben, und anschließend (vor dem Ende der der while-Schleife natürlich ) $lastDayMax = $row["Tagesertrag"];
Oder so ähnlich
Grüße
Filipp
Edit: oder auch einfacher ausgedrückt: Merke dir einfach bei jedem Schleifendurchlauf den aktuellen Wert, und verwende ihm beim nächsten Durchlauf für die Berechnung
ja... und?
Ich würde das nicht in der SQL-Abfrage versuchen, sondern während der Ausgabe.
Vor dem "while ($row = @mysql_fetch_array($result,MYSQL_BOTH)){" ein $lastDayMax = 0, dann vor der Ausgabe halt die Differenz errechnen und mit ausgeben, und anschließend (vor dem Ende der der while-Schleife natürlich ) $lastDayMax = $row["Tagesertrag"];
Oder so ähnlich
Grüße
Filipp
Edit: oder auch einfacher ausgedrückt: Merke dir einfach bei jedem Schleifendurchlauf den aktuellen Wert, und verwende ihm beim nächsten Durchlauf für die Berechnung