У меня есть таблица Kpi_definition
, в которой для конкретного event_id может присутствовать более одного KPI_DEF_ID
. Например, для event_id = 10250
есть два KPI_DEF_ID
. Я должен сначала проверить event_id, KPI_DEF_ID
присутствует или нет, и если он отсутствует, тогда установите STATUS
на 'N'
. В другом условии я должен проверить, присутствует ли KPI_DEF_ID
и нет ли значения поля KPI_ACTIVE_INITIAL,KPI_ACTIVE_CURRENT,KPI_ACTIVE_MANUAL,KPI_ACTIVE_DOWNTIME = 'N'
для всех KPI_DEF_ID
, затем OS.STATUS
, иначе 'N'
.
Я написал приведенный ниже запрос выбора, но он не работает. Я пишу этот запрос внутри представления.
SELECT 'EVENT' AS OBJECT_TYPE,
os.event_id AS OBJECT_ID,
CASE
WHEN NOT EXISTS(SELECT KD.kpi_def_id
FROM rator_monitoring_configuration.kpi_definition KD
WHERE KD.event_id = os.event_id
AND KD.kpi_type IN ( 19, 21 )) THEN 'N'
WHEN EXISTS(SELECT KD.kpi_def_id
FROM rator_monitoring_configuration.kpi_definition KD
WHERE KD.event_id = os.event_id
AND KD.kpi_type IN ( 19, 21 )
AND ( KD.kpi_active_initial = 'N'
OR KD.kpi_active_current = 'N'
OR KD.kpi_active_manual = 'N'
OR KD.kpi_active_downtime = 'N' )) THEN 'N'
ELSE os.status
END AS OBJECT_STATUS
FROM RATOR_MONITORING.EVENT_STATUS OS
FROM
? Вы обрезали свой запрос при копировании/вставке или забыли его в своем запросе? - person Fabienne B.   schedule 03.09.2015