查询根据另一列的最小值和客户ID返回值?

时间:2017-03-22 13:17:24

标签: sql

我仍然是SQL的新手,我似乎无法找到任何关于这个问题的东西,我正在寻求帮助。我有办法实现它,但它需要使用比我认为更多的SQL查询。我确信有更快的方法。我基本上试图做一些事情:

select Date
from Table
where ID = 1 and amount = min(amount)

我知道这是一个不起作用的查询。但我正在尝试获取表中列出的最小金额ID 1的日期。

ID  Date            Amount
1   3/21/17 4:00    5
2   3/20/17 8:00    4
3   3/22/17 12:00   6
1   3/18/17 17:00   4
2   3/19/17 17:00   2
1   3/20/17 17:00   2

我正在寻找的结果是3/20/17 17:00。非常感谢任何指导。

2 个答案:

答案 0 :(得分:1)

这样的东西? (如果你想要每个ID的最小金额,否则从子查询中删除ID):

SELECT T1.ID, DATE, AMOUNT
FROM T1 
INNER JOIN (SELECT ID, MIN(AMOUNT) AS MIN_AM FROM T1 GROUP BY ID) B ON T1.ID = B.ID AND T1.AMOUNT = B.MIN_AM

答案 1 :(得分:1)

怎么样:

SELECT TOP 1 Date FROM Table WHERE ID = 1 ORDER BY Amount ASC, Date ASC