我有一个包含3个字段的数据列表,ISIN,CompanyId和EffectiveDate。 ISIN在公司ID和生效日期都被复制。字段1在字段2上复制,需要根据字段3选择1,并返回字段1和字段2
实施例的数据:
ISIN CompanyId EffectiveDate
AED001410045 58105545 2012-02-09
AEDFXA1G39P8 132844116 2016-04-22
AEDFXA1G39P8 132844116 2017-09-21
ARDEUT110020 249603 2012-02-09
ARDEUT110020 416264458 2017-03-22
使用
SELECT ISIN, CompanyId, MAX(EffectiveDate)
FROM [MappingData].[dbo].[ESGMappingISIN]
GROUP BY ISIN,CompanyId
我可以删除关于ISIN和CompanyId重复项以返回
ISIN CompanyId EffectiveDate
AED001410045 58105545 2012-02-09
AEDFXA1G39P8 132844116 2017-09-21
ARDEUT110020 249603 2012-02-09
ARDEUT110020 416264458 2017-03-22
的最后一步,我需要的是:
A) Return ISIN and CompanyId where ISIN is distinct
B) If 1 ISIN has 2 CompanyIds, return the line with the later effective date.
理想输出
ISIN CompanyId EffectiveDate
AED001410045 58105545 2012-02-09
AEDFXA1G39P8 132844116 2017-09-21
ARDEUT110020 416264458 2017-03-22
什么[标签:RDBMS]您使用的? – Mureinik
使用子查询获取所需的行,连接回主表以从中获取数据列。同样的逻辑在这里:https://stackoverflow.com/questions/19432913/select-info-from-table-where-row-has-max-date/19433107#19433107 – Twelfth