Дважды получая повторяющиеся значения при объединении в одну таблицу - PullRequest
0 голосов
/ 09 октября 2019

Несколько соединений к одной и той же таблице по разным критериям.

Я пытаюсь получить значение из таблицы, но у меня другие критерии. Есть столбец, значение которого я пытаюсь получить. Есть два набора критериев.

Проблема с линией 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')

Я ищу один ряд.

Ответы [ 2 ]

0 голосов
/ 10 октября 2019

Невозможно исключить записи, которые произошли из левых объединений, указанных в вашем запросе. Вы можете либо написать коррелированный подзапрос и раздать строку вместо одной из таблиц в правой части объединений, либо изменить результат выбора, отличным от него, который, я считаю, не является вашим вариантом!

0 голосов
/ 09 октября 2019

Есть много способов удалить дубликаты. Одним из них является выбор данных с подвыбором.

Попробуйте обойти свой выбор другой выбор С DISTINCT:

SELECT DISTINCT
[Revenue Id]
      ,CPT
      ,[Procedure Mod]
      ,MemberId1
      ,MemberId2
      ,c_HCPCS
      ,c_HCPCS
      ,c_MOD
      ,c_MOD
      ,WorkRVUAmt 
FROM (<YOUR SELECT HERE>)

Не забудьте дать псевдоним именам столбцов MemberId (например, MemberId1, MemberId2)

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...