У меня есть 3 таблицы, и я должен проверить количество определенных записей в соответствии с приведенным ниже условием.
IF
count(T1DM DX = 0) & COUNT (T2DM DX = 0) & COUNT (T2DM MEDS >= 1) & COUNT(ABC > 6.5 OR DEF > 11.1 OR GHI > 7) >= 1 THEN "CASE"
ELSE
DO NOTHING
**OR**
IF
count(T1DM DX = 0) & COUNT (T2DM DX >=1) & COUNT (T1DM MEDS = 0) & COUNT (T2DM MEDS = 0) & COUNT(ABC > 6.5 OR DEF > 11.1 OR GHI > 7) >= 1 THEN "CASE"
ELSE
DO NOTHING
Мои операторы создания таблиц приведены ниже
CREATE TABLE DX(
DX_id serial Primary Key
person_id NOT NULL,
condition_name VARCHAR (50) UNIQUE NOT NULL,
cond_id VARCHAR (355) UNIQUE NOT NULL,
condition_start_date TIMESTAMP NOT NULL,
condition_end_date TIMESTAMP NOT NULL
);
CREATE TABLE RX(
RX_id serial Primary Key
person_id NOT NULL,
presciption_name VARCHAR (50) UNIQUE NOT NULL,
presc_id VARCHAR (355) UNIQUE NOT NULL,
pres_start_date TIMESTAMP NOT NULL,
pres_end_date TIMESTAMP
);
CREATE TABLE Lab(
Lab_id serial Primary Key
person_id NOT NULL,
Test_name VARCHAR (50) UNIQUE NOT NULL,
Test_id VARCHAR (355) UNIQUE NOT NULL,
Test_start_date TIMESTAMP NOT NULL,
Test_value FLOAT
);
Вот что Я пытался
IF ((select count(*) from public.DX where cond_id = 21) == 0 AND (select count(*) from public.DX where cond_id = 23) == 0 AND (select count(*) from public.RX where presc_id = 33) >=1
AND (select count(*) from (select * from public.Lab where test_id in (41,42,43)) where test_value > 6.5)) THEN "FOUND"
ELSE
DO NOTHING
Но это выдает ошибку. Может ли кто-нибудь помочь мне реализовать множественное условие if с логическими операторами AND / OR между ними?
Указывает на примечание
1) Таблица DX может иметь несколько условий. Основываясь на блок-схеме, мы должны искать T1DM и T2DM. Мы можем идентифицировать их, используя cond_ids (T1DM - 21, T2DM - 23)
2) В таблице RX может быть несколько рецептов лекарств. На основе блок-схемы нам нужно искать лекарства T1DM и T2DM. Мы можем идентифицировать их, используя presc_ids (лекарства T1DM - 31, лекарства T2DM - 33)
3) Лабораторный стол может иметь несколько результатов измерений / испытаний. На основе блок-схемы ненормальная лаборатория определяется нарушением порога для любого из 3 измерений, перечисленных ниже.
a) Three measurements - ABC, DEF, GHI. Test_ids for these three are 41,42,43
b) ABC > 6.5
c) DEF > 11.1
d) GHI > 7