我是sql的新手,所以在开始之前让我道歉。
我试图通过以下方式标记我称之为政策号码的匹配。
Select c.last_name, c.first_name, c.sex, c.date_of_birth, c.record_nbr,
case when ph.policy_nbr = cp.policy_nbr then ph.policy_nbr else 'No Match'
From table ph
Left join client c
On ph.last_name = c.last_name
And ph.first_name = c.first_name
And ph.date_of_birth = c.date_of_birth
And ph.sex = c.sex
Left join person_payer cp
On c.person_id = cp.person_id
Group by c.last_name, c.first_name,c.date_of_birth,
c.sex,ph.policy_num, cp.policy_nbr
这个想法是根据姓氏,名字,dob和性别在表格之间找到匹配。然后我想验证政策号码的匹配或不匹配。患者记录中是否存在保单编号?不幸的是,由于客户记录中存在多个策略编号,因此产生匹配且不匹配。如何将报告列为客户一次且仅列出“不匹配”或匹配保单号。
答案 0 :(得分:0)
假设策略表的名称是PolicyTable(因为它已命名为表但sql server抱怨它),您可以在单列而不是连接中进行选择。
SomeAsyncMethod
答案 1 :(得分:0)
Select c.last_name, c.first_name, c.sex, c.date_of_birth, c.record_nbr,
isnull(cp.policy_nbr, 'No Match')
From table ph
Left join client c
On ph.last_name = c.last_name
And ph.first_name = c.first_name
And ph.date_of_birth = c.date_of_birth
And ph.sex = c.sex
Left join person_payer cp
On c.person_id = cp.person_id
and ph.policy_nbr = cp.policy_nbr
Group by c.last_name, c.first_name,c.date_of_birth,
c.sex,ph.policy_num, cp.policy_nbr