我試圖製作一份報告,列出活動客戶端(case_status ='A')誰擁有附加到他們的舊版本沒有更新,但是我們的數據庫佈局的方式是將所有文檔都列在一張表中,因此有些客戶會附上十幾種不同的文檔。其中一些是重複的文件。選擇與一個列值相關但不是另一個的客戶端
Ex。
patient_id Doc_code
p01 doc1
p01 doc2
p01 doc3
po1 doc4
p02 doc2
po2 doc3
我需要知道誰擁有「DIAGDOC」的doc_code並沒有「DIAGDOC5」的doc_code,所以我們知道需要更新誰。
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%'替換頂部塊中的= diagdoc會過濾結果給任何擁有文件版本但不是最新版本的人,所以有文檔2,3,4,5的人不會通過,但有人2,3,4然而,他們不會與我原來的查詢完全吻合 – MarkD
其實我認爲這有效。我之前沒有使用過除外條款,但我認爲這將是我最新的好朋友。我們有一個臨牀人員更新了兩個文件,這些文件恰好在我今天早上做的清單的頂部。我會再做點檢查,然後給你一個複選標記。 –