Beispielabfragen
Für die folgenden Beispielabfragen nehmen wir an, dass in den Archiven folgende Datensätze enthalten sind (zur besseren Übersicht werden nur ausgewählte Spalten angegeben):
Tabelle HISTVAL
DPNAME | DPTYPE | ORIGINAL VALUE | STIME | INVALID_TIME_BIT |
---|---|---|---|---|
ventil1 | ventil | 1 | 2001.01.30 10:31:02.211 | 0 |
ventil2 | ventil | 1 | 2001.01.30 10:31:02.212 | 0 |
ventil3 | ventil | 1 | 2001.01.31 02:11:01.111 | 0 |
ventil1 | ventil | 0 | 2001.01.31 02:31:02.211 | 0 |
ventil1 | ventil | 1 | 2001.01.31 02:35:02.211 | 1 |
rot1.m.schalter | motor | 1 | 2001.01.31 02:38:02.211 | 0 |
rot1.f.schl1 | motor | 1.5 | 2001.01.31 10:31:02.211 | 0 |
rot1.dreh | motor | 1.7 | 2001.01.31 10:32:02.211 | 0 |
rot1.m.temp | motor | 63,1 | 2001.01.31 10:33:02.211 | 0 |
rot2.m.temp | motor | 66,4 | 2001.01.31 10:33:02.212 | 1 |
rot1.m.temp | motor | 61,2 | 2001.01.31 10:33:02.213 | 0 |
rot2.m.temp | motor | 64,3 | 2001.01.31 10:33:02.214 | 0 |
rot3.m.temp | motor | 65,3 | 2001.01.31 10:33:02.215 | 0 |
rot1.m.schalter | motor | 0 | 2001.01.31 10:33:02.215 | 1 |
Beispiel
Alle Datenpunkte mit Originalwert und Quellzeit für den 30.1.2001 bekommt man mit folgender Abfrage:
SELECT DPNAME,ORIGINALVALUE,STIME FROM HISTVAL WHERE STIME BETWEEN "2001.01.30 01:00:00.000" AND "2001.01.31 01:00:00.000"
DPNAME | ORIGINALVALUE | STIME |
---|---|---|
ventil1 | 1 | 2001.01.30 10:31:02.211 |
ventil2 | 1 | 2001.01.30 10:31:02.212 |
Beispiel
Alle Datenpunkte mit Originalwert und Quellzeit, deren Datenpunktname mit "schalter" oder "temp" endet, bekommt man mit folgender Abfrage:
SELECT DPNAME,ORIGINALVALUE,STIME FROM HISTVAL WHERE DPNAME IN ("*.*.schalter.","*.*.temp.")
DPNAME | ORIGINALVALUE | STIME |
---|---|---|
rot1.m.schalter | 1 | 2001.01.31 02:38:02.211 |
rot1.m.temp | 63,1 | 2001.01.31 10:33:02.211 |
rot2.m.temp | 66,4 | 2001.01.31 10:33:02.212 |
rot1.m.temp | 61,2 | 2001.01.31 10:33:02.213 |
rot2.m.temp | 64,3 | 2001.01.31 10:33:02.214 |
rot3.m.temp | 65,3 | 2001.01.31 10:33:02.215 |
rot1.m.schalter | 0 | 2001.01.31 10:33:02.215 |
Beispiel
Alle Einträge mit gesetztem INVALID_BIT vom Datenpunkttyp "motor":
SELECT (INVALID_BIT),DPNAME,ORIGINALVALUE,STIME FROM HISTVAL WHERE DPTYPE = "motor"
DPNAME | ORIGINALVALUE | STIME |
---|---|---|
rot1.m.schalter | 1 | 2001.01.31 02:38:02.211 |
rot1.f.schl1 | 1.5 | 2001.01.31 10:31:02.211 |
rot1.dreh | 1.7 | 2001.01.31 10:32:02.211 |
rot1.m.temp | 63,1 | 2001.01.31 10:33:02.211 |
rot2.m.temp | 66,4 | 2001.01.31 10:33:02.212 |
rot1.m.temp | 61,2 | 2001.01.31 10:33:02.213 |
rot2.m.temp | 64,3 | 2001.01.31 10:33:02.214 |
rot3.m.temp | 65,3 | 2001.01.31 10:33:02.215 |
rot1.m.schalter | 0 | 2001.01.31 10:33:02.215 |
Beispiel
Alle Datenpunkte mit Originalwert und Quellzeit, deren Datenpunktname mit "rot" beginnt und die genau einen Punkt im Namen haben, bekommt man mit folgender Abfrage:
SELECT DPNAME,ORIGINALVALUE,STIME FROM HISTVAL WHERE DPNAME LIKE "rot*.*."
DPNAME | ORIGINALVALUE | STIME |
---|---|---|
rot1.dreh | 1.7 | 2001.01.31 10:32:02.211 |
Beispiel
Die maximalen Originalwerte aller Schalter bekommt man mit folgender Abfrage (aufsteigend nach Datenpunktnamen):
SELECT DPNAME,MAX(ORIGINALVALUE)FROM HISTVAL WHERE DPNAME LIKE "*.*.temp." GROUP BY DPNAME ORDER BY DPNAME
Durch Gruppenfunktionen z.B. MAX, MIN usw. sollten nur Werte von Datenpunktelementen die vom gleichen Typ sind (siehe Beispiel oben) abgefragt werden. Da es Datenpunktelemente von verschiedenen Typen (Float, String, DynBool usw.) gibt, kann eine ganze Tabelle nicht sinnvoll durch MAX, MIN usw. abgefragt werden und eine Fehlermeldung wird ausgegeben.
Beachten Sie, dass, wenn Sie eine Abfrage nach einem Datenpunktnamen sortieren, Sie nach dem Datenpunktnamen immer einen Punkt hinzufügen müssen z.B. WHERE DPNAME LIKE "rot1.dreh."
DPNAME | ORIGINALVALUE |
---|---|
rot1.m.temp | 63,1 |
rot2.m.temp | 66,4 |
rot3.m.temp | 65,3 |
Tabelle ALERTS
Beachten Sie, dass gemeinsame Zugriffe wie z.B. UNION, JOIN usw. auf die Tabellen HISTVAL und ALERTS nicht möglich sind und dass nur geschlossene Intervalle der ALERTS-Tabelle abgefragt werden können.
ABBR | DPNAME | DPTYPE | STIME | ACK_TIME | PRIOR | ACK_TYPE |
---|---|---|---|---|---|---|
A | ventil1 | ventil | 2002.02.15 08:15:03.213 | 2002.02.15 08:15:07.213 |
60
|
ART_3: 'Kommt' ist quittierbar |
A | rot1.f.schl1 | motor | 2002.02.15 08:20:01.202 | 2002.02.15 08:21:01.204 | 60 | ART_4: Meldungspaar ist quittierungspflichtig |
aA
|
rot1.m.schalter | motor | 2002.02.10 09:15:01.209 | 2002.02.10 09:16:01.209 | 20 | ART_4: Meldungspaar ist quittierungspflichtig |
aA | rot1.f.schl1 | motor | 2002.02.15 08:20:01.202 | 2002.02.15 08:20:01.202 | 20 | ART_3: 'Kommt' ist quittierbar |
A | rot1.dreh | motor | 2002.02.16 12:22:01.201 | 2002.02.16 12:22:01.201 | 60 | ART_3: 'Kommt' ist quittierbar |
A | rot1.m.temp | motor | 2002.02.16 12:22:01.202 | 2002.02.16 12:22:05.202 | 60 | ART_3: 'Kommt' ist quittierbar |
aA | rot2.m.temp | motor | 2002.02.16 12:22:01.203 | 2002.02.16 12:23:03.203 | 20 | ART_3: 'Kommt' ist quittierbar |
Beispiel
Alle Datenpunkte mit Kurzzeichen der Priorität, Quellzeit, Quittierungszeit, Priorität des Meldebereichs und Quittierungsart deren Datenpunktname mit "schalter" oder "temp" endet, bekommt man mit folgender Abfrage:
SELECT ABBR,DPNAME,STIME,ACK_TIME,PRIOR, ACK_TYPE FROM ALERTS WHERE DPNAME IN ("*.*.schalter.","*.*.temp.") AND STIME BETWEEN "2002.02.10 07:00:00.000" AND "2002.02.16 01:00:00.000"
ABBR | DPNAME | STIME | ACK_TIME | PRIOR | ACK_TYPE |
---|---|---|---|---|---|
aA | rot1.m.schalter | 2002.02.10 09:15:01.209 | 2002.02.10 09:16:01.209 | 20 | ART_4: Meldungspaar ist quittierungspflichtig |
A | rot1.m.temp | 2002.02.16 12:22:01.202 | 2002.02.16 12:22:05.202 | 60 | ART_3: 'Kommt' ist quittierbar |
aA
|
rot2.m.temp | 2002.02.16 12:22:01.203 | 2002.02.16 12:23:03.203 | 20 | ART_3: 'Kommt' ist quittierbar |
Beispiel
Alle Datenpunkte mit Quellzeit und Quittierungszeit für den Zeitraum 14.02.2002-17.2.2002 bekommt man mit folgender Abfrage:
SELECT DPNAME,STIME,ACK_TIME FROM ALERTS WHERE STIME BETWEEN "2002.02.14 01:00:00.000" AND "2002.02.17 01:00:00.000"
DPNAME | STIME | ACK_TIME | ACK_TYPE |
---|---|---|---|
ventil1 | 2002.02.15 08:15:03.213 | 2002.02.15 08:15:07.213 |
ART_3: 'Kommt' ist quittierbar
|
rot1.f.schl1
|
2002.02.15 08:20:01.202 | 2002.02.15 08:21:01.204 | ART_3: 'Kommt' ist quittierbar |
rot2.m.temp | 2002.02.16 12:22:01.203 | 2002.02.16 12:23:03.203 | ART_3: 'Kommt' ist quittierbar |