有人可以帮我解决下面的问题吗?
member_id
列中使用两个不同的值获得相同的event_status_reason_desc
。 NULL
,但我不想要那个。 有人可以帮助我吗?
SELECT *
FROM openquery(ccms_rpt, '
select
a.member_id, b.member_first_name, b.member_last_name, a.event_type,
d.event_type_desc, a.event_date, a.authorization_number, g.refer_to_provider,
c.ccms_user_last_name, c.ccms_user_first_name,
case
when a.event_type = fe.event_type then (fe.event_status_reason_desc)
when a.event_type = ''04'' then(ge.event_status_reason_desc)
end as Event_Status_Reason_Desc
from ccmsdba_txc_prd.event a
join ccmsdba_txc_prd.member b
on a.member_id = b.member_id
join ccmsdba_txc_prd.ccms_all_users c
on a.ccms_id = c.ccms_id
join ccmsdba_txc_prd.zl_event_type d
on a.event_type = d.event_type
left join ccmsdba_txc_prd.event_admission f
on a.authorization_number = f.authorization_number
left join ccmsdba_txc_prd.event_referral g
on a.authorization_number = g.authorization_number
left join ccmsdba_txc_prd.zl_event_status_reason fe
on f.event_status_reason = fe.event_status_reason
left join ccmsdba_txc_prd.zl_event_status_reason ge
on g.event_status_reason = ge.event_status_reason
where a.event_status = ''IP''
and a.authorization_number = ''A170''
')
答案 0 :(得分:0)
假设你只有两个问题:
1.你有“ authorization_number ”的重复记录
“ event_admission ”或“ event_referral ”表。或者您在“ zl_event_status_reason ”中有“ event_status_reason ”的副本
您必须清理数据或使用子查询来获取不同的值。
您在列中的一行上收到“输入错误”字样。
您没有指定该列,但假设该列中没有空值
最有可能的是,您在其中一个LEFT连接表中没有相应的记录
如果你真的需要LEFT join并且不需要NULL,你可以使用ISNULL函数。像这样:
ISNULL([我的专栏],'非空值')