我知道这可能很简单,但我需要一些帮助。我目前正在根据以下查询返回多行。 licensetypeid列返回具有不同INTS的两行。我想返回最高的int,以及与之相关的所有其他列信息。列都具有不同的值。
select JdeAddressNo, LicenseNo, ExpirationDate, max(LicenseTypeId) LicenseTypeID
from Licensing_DEV..License
group by JdeAddressNo, LicenseNo, ExpirationDate
我相信我的问题出在小组中,因为所有其他值都不同。我该怎么纠正这个,所以我只返回ID列中具有最高值的单行?
答案 0 :(得分:2)
SELECT *
FROM (
select JdeAddressNo, LicenseNo, ExpirationDate, LicenseTypeId
,ROW_NUMBER() OVER (PARTITION BY JdeAddressNo, LicenseNo, ExpirationDate ORDER BY LicenseTypeId DESC) rn
from Licensing_DEV..License
)A
WHERE rn = 1
答案 1 :(得分:0)
答案 2 :(得分:0)
select top 1 JdeAddressNo, LicenseNo, ExpirationDate, LicenseTypeId
from Licensing_DEV..License
group by JdeAddressNo, LicenseNo, ExpirationDate
order by max(LicenseTypeId) desc
答案 3 :(得分:0)
这应该有效:
select JdeAddressNo, LicenseNo, ExpirationDate, LicenseTypeID
from Licensing_DEV..License
where LicenseTypeID = (Select max(LicenseTypeID) from Licensing_DEV..License)
答案 4 :(得分:0)
试试这个,如果您收到任何错误,请发布错误和一些示例数据。
SELECT Top 1 JdeAddressNo, LicenseNo, ExpirationDate, LicenseTypeId
FROM Licensing_DEV..License
WHERE LicenseTypeId = (SELECT MAX(licenseTypeID) FROM Licensing_DEV..License)
GROUP BY JdeAddressNo, LicenseNo, ExpirationDate
order by LicenseTypeId desc