Пример запросов

Для примера запросов ниже в архивах должны находиться следующие записи данных (для ясности показаны только выбранные столбцы):

Таблица HISTVAL

DPNAMEDPTYPEORIGINAL
VALUE
STIMEINVALID
_BIT
valve1valve12001.01.30 10:31:02.2110
valve2valve12001.01.30 10:31:02.2120
valve3valve12001.01.31 2:11:01.1110
valve1valve02001.01.31 2:31:02.2110
valve1valve12001.01.31 2:35:02.2111
red1.m.switchmotor12001.01.31 2:38:02.2110
red1.f.sw1motor1,52001.01.31 10:31:02.2110
red1.speedmotor1,72001.01.31 10:32:02.2110
red1.m.tempmotor63,12001.01.31 10:33:02.2110
red2.m.tempmotor66,42001.01.31 10:33:02.2121
red1.m.tempmotor61,22001.01.31 10:33:02.2130
red2.m.tempmotor64,32001.01.31 10:33:02.2140
red3.m.tempmotor65,32001.01.31 10:33:02.2150
red1.m.switchmotor02001.01.31 10:33:02.2151

ПРИМЕР

В следующем запросе извлекаются все точки данных и исходные значения для времени источника 30.1.2001:

SELECT DPNAME,ORIGINALVALUE,STIME FROM HISTVAL WHERE STIME BETWEEN «2001.01.30 01:00:00.000» AND «2001.01.31 01:00:00.000»

DPNAMEORIGINALVALUESTIME
valve112001.01.30 10:31:02.211
valve212001.01.30 10:31:02.212

ПРИМЕР

В следующем запросе извлекаются все точки данных, в том числе исходные значения и время источника, с именем точки данных, заканчивающимся на «switch» (переключатель) или «temp» (температура):

SELECT DPNAME,ORIGINALVALUE,STIME FROM HISTVAL WHERE DPNAME IN («*.*.switch.»,»*.*.temp.»)

DPNAMEORIGINALVALUESTIME
red1.m.switch12001.01.31 2:38:02.211
red1.m.temp63,12001.01.31 10:33:02.211
red2.m.temp66,42001.01.31 10:33:02.212
red1.m.temp61,22001.01.31 10:33:02.213
red2.m.temp64,32001.01.31 10:33:02.214
red3.m.temp65,32001.01.31 10:33:02.215
red1.m.switch02001.01.31 10:33:02.215

ПРИМЕР

В этом запросе все записи с заданным INVALID_BIT типа точки данных «motor» (двигатель):

SELECT (INVALID_Bit),DPNAME,ORIGINALVALUE,STIME FROM HISTVAL WHERE DPTYPE = «motor»

DPNAMEORIGINALVALUESTIME
red1.m.switch12001.01.31 2:38:02.211
red1.f.sw11,52001.01.31 10:31:02.211
red1.speed1,72001.01.31 10:32:02.211
red1.m.temp63,12001.01.31 10:33:02.211
red2.m.temp66,42001.01.31 10:33:02.212
red1.m.temp61,22001.01.31 10:33:02.213
red2.m.temp64,32001.01.31 10:33:02.214
red3.m.temp65,32001.01.31 10:33:02.215
red1.m.switch02001.01.31 10:33:02.215

ПРИМЕР

В следующем запросе извлекаются все точки данных, исходные значения и время источника, с именем точки данных, начинающимся с «red» (красный) и содержащим одну точку (знак точки) в имени:

SELECT DPNAME,ORIGINALVALUE,STIME FROM HISTVAL WHERE DPNAME LIKE «red*.*.»

DPNAMEORIGINALVALUESTIME
red1.speed1,72001.01.31 10:32:02.211

ПРИМЕР

В следующем запросе извлекаются максимальные исходные значения для всех переключателей (в порядке возрастания имен точек данных):

SELECT DPNAME,MAX(ORIGINALVALUE)FROM HISTVAL WHERE DPNAME LIKE «*.*.temp.» GROUP BY DPNAME ORDER BY DPNAME

ПРИМЕЧАНИЕ

Групповые функции, такие как MAX, MIN, следует использовать только для запроса значений точек данных, которые принадлежат к одному типу (см. пример выше). Поскольку существуют элементы точек данных различных типов (Float, String, DynBool и другие), вся таблица не может быть правильно запрошена такими типами, и отображается сообщение об ошибке.

ПРИМЕЧАНИЕ

При использовании имени точки данных в качестве критерия фильтрации в операторе SQL, необходимо всегда добавлять точку после имени точки данных, например, WHERE DPNAME LIKE «red1.m.temp.»

DPNAMEORIGINALVALUE
red1.m.temp63,1
red2.m.temp66,4
red3.m.temp65,3

Таблица ALERTS

ПРИМЕЧАНИЕ

Нельзя выполнять запросы с общим доступом, такие как UNION и JOIN, для таблиц HISTVAL и ALERTS. Можно запросить только закрытые интервалы для таблицы ALERTS.

ABBRDPNAMEDPTYPESTIMEACK_TIMEPRIORACK_TYPE
Avalve1valve2002.02.15 8:15:03.2132002.02.15 8:15:07.21360 TYPE_3: ‘Входящий аларм’ является квитируемым
Ared1.f.schl1motor2002.02.15 08:20:01.2022002.02.15 8:21:01.20460TYPE_4: Для пары алармов требуется квитирование
aA red1.m.switchmotor2002.02.10 9:15:01.2092002.02.10 9:16:01.20920TYPE_4: Для пары алармов требуется квитирование
aAred1.f.schl1motor2002.02.15 08:20:01.2022002.02.15 08:20:01.20220TYPE_3: ‘Входящий аларм’ является квитируемым
Ared1.rotmotor2002.02.16 12:22:01.2012002.02.16 12:22:01.20160TYPE_3: ‘Входящий аларм’ является квитируемым
Ared1.m.tempmotor2002.02.16 12:22:01.2022002.02.16 12:22:01.20260TYPE_3: ‘Входящий аларм’ является квитируемым
aAred2.m.tempmotor2002.02.16 12:22:01.2032002.02.16 12:23:03.20320TYPE_3: ‘Входящий аларм’ является квитируемым

ПРИМЕР

В следующем запросе извлекаются все точки данных, оканчивающиеся словом «switch» или «temp» и временем источника в диапазоне 10.02.02-16.02.02:

SELECT ABBR,DPNAME,STIME,ACK_TIME,PRIOR, ACK_TYPE FROM ALERTS WHERE DPNAME IN («*.*.switch.»,»*.*.temp.») AND STIME BETWEEN «2002.02.10 07:00:00.000» AND «2002.02.16 01:00:00.000»

В запросе показаны аббревиатура приоритета, время источника, время квитирования, приоритет диапазона алармов и тип квитирования всех точек данных с вышеупомянутыми именами:

ABBRDPNAMESTIMEACK_TIMEPRIORACK_TYPE
aAred1.m.switch2002.02.10 9:15:01.2092002.02.10 9:16:01.20920TYPE_4: Для пары алармов требуется квитирование
Ared1.m.temp2002.02.16 12:22:01.2022002.02.16 12:23:01.20260TYPE_3: ‘Входящий аларм’ является квитируемым
aA red2.m.temp2002.02.16 12:22:01.2032002.02.16 12:23:03.20320TYPE_3: ‘Входящий аларм’ является квитируемым

ПРИМЕР

В следующем запросе извлекаются все точки данных в течение периода 14.02.2002-17.02.02

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»

DPNAMESTIMEACK_TIMEACK_TYPE
valve12002.02.15 8:15:03.2132002.02.05 8:15:03.213TYPE_3: ‘Входящий аларм’ является квитируемым 
red1.f.schl1 2002.02.15 08:20:01.2022002.02.16 12:22:01.202TYPE_3: ‘Входящий аларм’ является квитируемым
red2.m.temp2002.02.16 12:22:01.2032002.02.16 12:22:01.203TYPE_3: ‘Входящий аларм’ является квитируемым

Добавить комментарий

Ваш адрес email не будет опубликован. Обязательные поля помечены *