【发布时间】:2019-10-09 06:12:42
【问题描述】:
使用不同条件对同一个表进行多次连接。
我正在尝试从表中获取一个值,但有不同的标准。有一列具有我要检索的值。有两组标准。
问题在于 Else 行。逻辑是,如果第一次连接中的条件为真,则获取 c_wRVUAmt 值。如果没有匹配,则使用第二个连接中的条件。如果那里没有匹配,则使用 0。
我得到了重复的记录,这我明白。我只是不明白如何编写连接或查询来消除重复行。
select a.[Revenue Id]
,a.CPT
,a.[Procedure Mod]
,dd.MemberId
,ee.MemberId
,dd.c_HCPCS
,ee.c_HCPCS
,dd.c_MOD
,ee.c_MOD
,CASE When a.[GL Company Unit] IN ('6500','6600','6700') and a.[Rev Code] = '0320'
then 0
When RTRIM(a.[BE Name]) <> 'Hospital'
Then 0
Else ISNULL(dd.c_wRVUAmt * a.[Total Qty],0)+ISNULL(ee.c_wRVUAmt * a.[Total Qty],0)
end as WorkRVUAmt
from GP_CUSTOMS..Revenue_Staging a
Left Outer Join d_Dim22 dd on a.[CPT] = dd.c_HCPCS
and a.[Procedure Mod] = dd.c_MOD
and a.[Procedure Mod] in ('26','53')
Left Outer Join d_Dim22 ee on a.[CPT] = ee.c_HCPCS
and a.[Procedure Mod] NOT IN ('26','53')
我正在寻找一排。
【问题讨论】:
-
您是否尝试过
GROUP BY或distinct以避免重复 -
轻松为您提供帮助:minimal reproducible example.
-
问题在于 Else 行。 ... 消除重复行。 -- 您面临这两个不同的问题吗?