Ich benötige eine Möglichkeit aus C++ Builder heraus eine Auswertung von Daten aus einer Datenbank zu erstellen. Die Daten werden in drei Tabellen gehalten. (T_Stationen, T_Kanaele und T_Erfassung) In der Tabelle T_Stationen werden, wie der Name schon sagt, die Stationen einer Produktionsanlage eingetragen. In der Tabelle Kanaele sind die einzelnen Ereignisanaele jeder Station gespeichert. In der Tabelle T_Erfassung werden über die Zeit alle Änderungen der Ereignissignale gespeichert.
Um dies jetzt aber brauchbar auszuwerten benötige ich eine Funktion oder so, die mir die Zeiten so zusammenrechnet, dass ich die Dauer aller "Hi-Signale" und die Dauer aller "Low-Signale" innerhalb eines Zeitraums berechnen kann.
Meine Abfrage sieht zur Zeit noch folgendermaßen aus:
<code>
select k.Text,<br>
(select count(T_Erfassung.Wert)<br>
from T_Erfassung<br>
where T_Erfassung.FID_Kanal = k.ID_Kanal and<br>
T_Erfassung.Wert = 1<br>
group by T_Erfassung.Wert) wahr,<br>
(select count(T_Erfassung.Wert)<br>
from T_Erfassung<br>
where T_Erfassung.FID_Kanal = k.ID_Kanal and<br>
T_Erfassung.Wert = 0<br>
group by T_Erfassung.Wert) falsch<br>
from T_Stationen s, T_Kanaele k<br>
where s.SNr = 1 and<br>
k.FID_Station = s.ID_Station<br>
group by k.Text;<br>
</code>
Hat irgendjemand soetwas schoneinmal gemacht?! Oder hat jemand eine Ahnung, wie man das Problem lösen kann.
Um dies jetzt aber brauchbar auszuwerten benötige ich eine Funktion oder so, die mir die Zeiten so zusammenrechnet, dass ich die Dauer aller "Hi-Signale" und die Dauer aller "Low-Signale" innerhalb eines Zeitraums berechnen kann.
Meine Abfrage sieht zur Zeit noch folgendermaßen aus:
<code>
select k.Text,<br>
(select count(T_Erfassung.Wert)<br>
from T_Erfassung<br>
where T_Erfassung.FID_Kanal = k.ID_Kanal and<br>
T_Erfassung.Wert = 1<br>
group by T_Erfassung.Wert) wahr,<br>
(select count(T_Erfassung.Wert)<br>
from T_Erfassung<br>
where T_Erfassung.FID_Kanal = k.ID_Kanal and<br>
T_Erfassung.Wert = 0<br>
group by T_Erfassung.Wert) falsch<br>
from T_Stationen s, T_Kanaele k<br>
where s.SNr = 1 and<br>
k.FID_Station = s.ID_Station<br>
group by k.Text;<br>
</code>
Hat irgendjemand soetwas schoneinmal gemacht?! Oder hat jemand eine Ahnung, wie man das Problem lösen kann.
Comment