不确定标题的实用性,所以让我直接看一下。
下面是一个查询(和后续结果集),可让您大致了解我的工作方式:
select PRACT_ID, ID_Number, DocumentName
from Practitioner_ID_Numbers
where PRACT_ID = 1193
PRACT_ID ID_Number DocumentName
1193 H9704 State License
1193 BR1918804 DEA Number
1193 10080428 Controlled Substance
1193 E51693 Medicare UPIN
1193 00419V Medicare Provider
1193 None Medicaid Provider
Pract_ID =人的唯一标识符
ID_Number =与文档关联的标识号
DocumentName =标识文档类型(例如,id_number可以是(555)555-1234,而documentname是“电话号码”)
所以我需要做的是编写一个查询,该查询标识没有文档名称类型'NPI number'条目的所有pract_id。
答案 0 :(得分:1)
您可以使用聚合:
select PRACT_ID
from Practitioner_ID_Numbers
group by PRACT_ID
having sum(case when DocumentName = 'NPI number' then 1 else 0 end) = 0;
答案 1 :(得分:1)
使用不存在很容易解决排除问题:
select distinct PRACT_ID
from Practitioner_ID_Numbers p
where not exists (
select 1 from Practitioner_ID_Numbers
where PRACT_ID = p.PRACT_ID and DocumentName = 'NPI number'
)
答案 2 :(得分:0)
您可以将一组从业人员的记录集加入Practitioner_ID_Numbers
中,以确定哪些从业人员没有NPI。
在这里,我使用的是基于Practitioner_ID_Numbers
的CTE,但是如果您有一个单独的表来存储从业人员,则可以改用它:
WITH Practitioners(PRACT_ID) AS ( SELECT DISTINCT PRACT_ID FROM Practitioner_ID_Numbers ) SELECT Practitioners.PRACT_ID FROM Practitioners LEFT JOIN Practitioner_ID_Numbers AS ProviderNPIs ON ProviderNPIs.PRACT_ID = Practitioners.PRACT_ID AND ProviderNPIs.DocumentName = 'NPI number' WHERE ProviderNPIs.PRACT_ID IS NULL
请注意,在JOIN
中,我们表示仅关注DocumentName
为“ NPI编号”的记录。然后,我们在WHERE
子句中指出,我们想要具有空PRACT_ID
的记录。这就是我们确定哪些从业人员缺少NPI的方法。
一些附加说明:
NULL
(或表中根本不存在)吗?DocumentName
。像ID_Type
之类的东西可能更合适。