嗨,我有一张桌子,上面有供应商,产品和日期,
现在我的查询返回了每个供应商,产品和最新日期
SELECT
Supplier,
Product,
MAX(LastDate)
FROM
Products
WHERE Supplier IN (''J1006962'', ''00000820'')
AND Product = ''M131200''
GROUP BY
Supplier,
Product
这将返回
Supplier Product LastDate
00000820 M131200 1190506
J1006962 M131200 1180516
结果应该是
Supplier Product LastDate
00000820 M131200 1190506
日期是db2格式,因为它是链接服务器
答案 0 :(得分:1)
如果我理解正确,则想这样做:
SELECT
Supplier,
Product,
MAX(LastDate)
FROM
Products
WHERE Supplier IN (''J1006962'', ''00000820'')
AND Product = ''M131200''
GROUP BY
Supplier,
Product
ORDER BY(LastDate);
答案 1 :(得分:1)
只需添加一个SELECT TOP 1
并对其进行排序:
SELECT TOP 1
Supplier,
Product,
MAX(LastDate)
FROM
Products
WHERE Supplier IN (''J1006962'', ''00000820'')
AND Product = ''M131200''
GROUP BY
Supplier,
Product
ORDER BY LastDate DESC
答案 2 :(得分:1)
如果您只有1种产品,则不需要GROUP BY
SELECT TOP 1
Supplier,
Product,
LastDate
FROM
Products
WHERE Supplier IN ('J1006962', '00000820')
AND Product = ''M131200''
ORDER BY LastDate DESC;
如果希望每种产品的最后供应商使用ROW_NUMBER()
SELECT *
FROM (
SELECT
Supplier,
Product,
LastDate,
ROW_NUMBER() OVER (PARTITION BY Product ORDER BY LastDate DESC) as rn
FROM
Products
WHERE Supplier IN ('J1006962', '00000820')
)
WHERE rn = 1