![]() |
AW: Otimierung SQL Abfrage oder Logik
Korrekt wäre es, den ersten Wert zu ermitteln, denn den hat Du ja definitiv nicht (er entspricht der letzten Datenänderung vor dem Zeitraum. Der letzte Wert entspricht dem letzten Wert aus dem Select.
Die Ermittelung der Werte kannst Du Dir natürlich sparen, wenn zufällig zu Beginn und Ende ein Wert vorhanden ist. |
AW: Otimierung SQL Abfrage oder Logik
Danke Allen...:P
Zitat:
Zitat:
|
AW: Otimierung SQL Abfrage oder Logik
Zu erst mal möchte ich Bug zustimmen: Wenn nicht gemessen wird zeig auch nichts an. Der Vergleich mit dem EKG hinkt. Denn das EKG misst auch wenn es pieep macht, nur das der Wert eben 0 ist. Deine waagerechten farbigen Linien stellen aber ein Wert da, nur dass dieser gar nicht gemessen wurde, ist dann also eigentlich eine Falschaussage.
Zu den fehlenden Werten. Probier mal folgendes: Leg ein Tabelle mit den Datum aller Tage über einen Zeitraum von, sagen wir mal 10 Jahren (macht gerade mal ca. 36500 Datensätze) an:
Code:
Dann die Tabelle entsprechend füllen und und baue dein SELECR um:
create table T_DATUM (
DATUM date not null, UNIX_START int not null, UNIX_END int not null, primary key DATUM );
Code:
Alles ungetestet (habe keine Firebord DB.
select
rd.F_PARAMETER_ID, -- damit auch ein Timestamp zurückgegeben wird, wenn keine Daten da sind case when rd.F_TIMESTAMP_UNIX = null then d.UNIX_START else rd.F_TIMESTAMP_UNIX end as F_TIMESTAMP_UNIX, rd.F_POWER_STATE, rd.F_VALUE, mt.F_TYPE_ID from T_DATUM d left outer join T_RECORD_DATA rd ON rd.F_TIMESTAMP_UNIX between d.UNIX_START and d.UNIX_END inner join T_DEVICE_PARAMETERS dp on dp.ID = rd.F_PARAMETER_ID inner join T_MEASURE_TYPES mt on mt.ID = dp.F_MEASURE_TYPE_ID where rd.F_PARAMETER_ID = 1060 and d.DATUM between <startzeitpunkt> and <endzeitpunkt> -- jetzt aber als DATE formatiert order by rd.F_TIMESTAMP_UNIX desc |
AW: Otimierung SQL Abfrage oder Logik
Zitat:
Zitat:
|
AW: Otimierung SQL Abfrage oder Logik
Der Anwender ist König. :-)
Trotzdem, die Werte auf 0 runterziehen wäre für mich keine Lösung. Denn die Werte sind nicht 0, das System kennt diese Werte nicht. Wenn ich dich frage wieviel Geld hattest du gestern in deiner Brieftasche und du antwortest 0 Euro ist das etwas komplett anderes als wenn du sagst, weiß ich nicht. |
AW: Otimierung SQL Abfrage oder Logik
:P Die 0 Linie ist ja die X-Achse und damit sind die Linien quasi nicht sichtbar...
|
Alle Zeitangaben in WEZ +1. Es ist jetzt 10:34 Uhr. |
Powered by vBulletin® Copyright ©2000 - 2025, Jelsoft Enterprises Ltd.
LinkBacks Enabled by vBSEO © 2011, Crawlability, Inc.
Delphi-PRAXiS (c) 2002 - 2023 by Daniel R. Wolf, 2024 by Thomas Breitkreuz