Использование фильтров с объединением SQL - PullRequest
0 голосов
/ 13 июня 2018

У меня есть запрос SQL Server.Выполнение этого запроса даст список номеров заявок и UW_Peril.

SQL Server:

select 
    ClaimNum, UW_Peril  
from 
    tableA

union

select  
    ClaimNum, UW_Peril 
from 
    (select 
         claimNum, 'Litigation' as UW_Peril 
     from 
         tableB
     where 
         Litigation = 1 and OrderofSuitReceived = 1) lt

У меня есть 2 случая:

  1. , если на номер заявки только одна строка, оставьте ее как есть.
  2. Но если число претензий превышает несколько строк, выберите строку, в которой UW_Peril = 'Судебные споры'

Пример:

ClaimNum    UW_Peril
--------------------------
2053057     Litigation
2053057     Theft
2053125     Litigation
2052452     Subro

Ожидаемый результат

Пример:

ClaimNum    UW_Peril
--------------------------
2053057     Litigation
2053125     Litigation
2052452     Subro

Как бы я изменил это?Заранее спасибо

1 Ответ

0 голосов
/ 13 июня 2018

Вы можете использовать exists и not exists с union all:

select ClaimNum, UW_Peril
from tableB b
where exists (select 1 
              from tableB b1 
              where b1.ClaimNum = b.ClaimNum and b1.UW_Peril = b.UW_Peril)
union all
select ClaimNum, UW_Peril
from tableB b
where not exists (select 1 
                  from tableB b1 
                  where b1.ClaimNum = b.ClaimNum and b1.UW_Peril = b.UW_Peril) and
      b.UW_Peril = 'Lititgation';
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...