Попытка вернуть одно значение, когда дубликаты возвращаются на основе более ранней открытой даты: - PullRequest
0 голосов
/ 10 октября 2018

Скажем, у меня есть 300 местных провайдеров, и некоторые из них работают в разных местах.У каждого местоположения есть адрес для выставления счета, но я хочу вернуть адрес выставления счета только для того местоположения, которое провайдер открыл первым (та дата открытия)чтобы вернуть самое раннее открытое для каждого провайдера

Ответы [ 2 ]

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

Оконные функции ваших друзей.Попробуйте что-то вроде этого:

SELECT * FROM
(
SELECT DISTINCT
    L.Open_DT
    , bil.*
    ,ROW_NUMBER() OVER (ORDER BY L.Open_DT) AS Rnk
FROM tbl_Location L
    LEFT OUTER JOIN [MOAD].[dbo].[qry_Location_Address_Billing] bil
        ON L.Location_ID = bil.LocationID
WHERE L.Group_NPI = '*******'
) AS R
WHERE Rnk = 1
0 голосов
/ 10 октября 2018

Вы можете использовать row_number и выбрать 1, как показано ниже

Select * from 
    (
    Select L.Open_dt, bill.*, 
        RowN = Row_number() over(partition by Address_type, Street1, City, State order by L.Open_DT desc) from tbl_Location L
    left join ...
    ) a
    where a.RowN = 1
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...