尝试根据较早的开放日期返回重复值时尝试返回单个值:

时间:2018-10-10 20:06:16

标签: sql-server tsql

说我有300个位置信息提供者,其中一些在多个位置工作。每个地点都有一个帐单邮寄地址,但我只想返回提供商首先打开的地点的帐单邮寄地址(该营业日),这是我所要求的,但是我想我应该问的是如何获得返回每个提供商的最早开放时间

2 个答案:

答案 0 :(得分:0)

您可以使用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

答案 1 :(得分:0)

窗口功能是您的朋友。尝试这样的事情:

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