2017-03-22 14 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と量=( id = 1のテーブルからmin(amount)を選択してください) ' –

+0

どのdbmsを使用していますか?あなたは製品固有の回答を持っています... – 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

関連する問題