Я пытаюсь сделать отчет, в котором перечислены активные клиенты (case_status = 'A'), у которых есть старая версия прикрепленного к ним документа без новой, но способ, которым наша база данных изложена, все документы перечислены в одной таблице, поэтому некоторые клиенты будут иметь дюжину различных документов, прикрепленных к ним. Некоторые из них являются дублирующими документами.Выбор клиентов, имеющих связь с одним значением столбца, но не другое
Ex.
patient_id Doc_code
p01 doc1
p01 doc2
p01 doc3
po1 doc4
p02 doc2
po2 doc3
Мне нужно знать, кто имеет doc_code из «DIAGDOC» и не имеет doc_code из «DIAGDOC5», поэтому мы знаем, кто нуждается в обновлении.
select
de.patient_id,
de.episode_id
from doc_entity de
join patient p
on p.patient_id = de.patient_id and p.episode_id = de.episode_id
where p.case_status = 'A'
group by de.patient_id, de.episode_id, de.doc_code
having (de.doc_code in ('DIAGDOC'))and (de.doc_code not in ('DIAGDOC5'))
order by de.patient_id, de.episode_id
я, кажется, чтобы некоторые клиенты скользнули по трещинам. Попытка выяснить, почему. –
есть люди с документами типа diagdoc2, но не с диаддоком, которые проходят? заменяя = diagdoc в верхнем блоке таким же, как «diagdoc%», затем фильтрует результаты любому, у кого есть версия файла, но не последняя, так что кто-то с документами 2,3,4,5 не пришел, но кто-то с 2,3,4, однако, они бы не были cuaght с моим первоначальным запросом – MarkD
На самом деле я думаю, что сработало. Раньше я не использовал предложение Except, но я думаю, что это будет мой новый лучший друг. У нас был клинический человек, который обновил два документа, которые оказались в верхней части моего списка, который я сделал сегодня утром. Я сделаю еще немного проверки места, а затем отправлю вам галочку. –