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:
create table T_DATUM (
DATUM date not null,
UNIX_START int not null,
UNIX_END int not null,
primary key DATUM
);
Dann die Tabelle entsprechend füllen und und baue dein SELECR um:
Code:
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
Alles ungetestet (habe keine Firebord
DB.