2017-03-22 73 views
0

我还是很新的SQL,我似乎无法找到任何关于这个问题,并寻求帮助。我有办法完成它,但它需要使用更多的SQL查询,而不是我认为需要的。我确信有一个更快的方法来做到这一点。我基本上是想做类似的事情:查询基于另一列和客户ID的最小值返回值?

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。任何指导非常感谢。

+0

子查询:'从表中选择日期其中id = 1和金额=(从表中选择min(金额),其中id = 1)' –

+0

您使用哪个dbms?您有产品特定的答案(s)... – jarlh

+0

jarlh我正在使用SQL Server – Shnozz

回答

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 
+0

非常感谢! – Shnozz

1

如何:

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

相关问题