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

Anmerkung:

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.

Anmerkung:

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

Anmerkung:

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