У меня есть два запроса, которые я унаследовал, чтобы получить общее количество пациентов для разных кодов ролей, проблема в том, что они возвращают одно и то же число - теперь я знаю, что DISTINCT производит это из-за отношений один-ко-многим вТаблицы описаны ниже, но я не уверен, как добавить дополнительные критерии в запрос для изоляции:
Запрос 1 (Результаты теоретически должны быть меньше
SELECT count(DISTINCT p.patient)
FROM react r
INNER JOIN CasesR cr
ON cr.globalid = r.globalid
LEFT JOIN profile p
ON cr.globalid = p.globalid
WHERE r.desc = 'A'
AND cr.rcode = 'PS'
Запрос 1 (Результаты теоретически должны быть намного больше)
SELECT count(DISTINCT p.patient)
FROM react r
INNER JOIN CasesR cr
ON cr.globalid = r.globalid
LEFT JOIN profile p
ON cr.globalid = p.globalid
WHERE r.desc = 'A'
реагировать Ключевые поля
rrecordid (PK)
globalid (Multiples in table IE: rrecordid=1,globalid=122; rrecordid=2,globalid=333)
desc (Multiples in table IE: rrecordid=1,globalid=122; rrecordid=2,globalid=333)
CasesR Ключевые поля
crecordid (PK)
globalid
(Multiples in table IE: crecordid=1,globalid=122;crecordid=2,globalid=333)
rcode (enum: 'A','B','C','D')
(multiples, globalid=122;rcode=A; globalid=122;rcode=B)
ПрофильКлючевые поля
globalid (PK)
patient (Multiples in table IE: globalid=1,patient=122;globalid=2,patient=122)
Так как же изменить этот запрос, чтобы получить истинные значения?
Спасибо