如何避免多个类别到一个sql记录

时间:2014-05-22 13:38:31

标签: sql

有人可以帮我解决下面的问题吗?

  • 我在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''
')

1 个答案:

答案 0 :(得分:0)

假设你只有两个问题:
1.你有“ authorization_number ”的重复记录 “ event_admission ”或“ event_referral ”表。或者您在“ zl_event_status_reason ”中有“ event_status_reason ”的副本
您必须清理数据或使用子查询来获取不同的值。

  1. 您在列中的一行上收到“输入错误”字样。
    您没有指定该列,但假设该列中没有空值 最有可能的是,您在其中一个LEFT连接表中没有相应的记录 如果你真的需要LEFT join并且不需要NULL,你可以使用ISNULL函数。像这样:

    ISNULL([我的专栏],'非空值')