2013-10-17 161 views
0

我有一個存儲過程的查詢:SQL查詢選擇查詢結果集最大最小值

SELECT 
    ID 
    ,AmountInCurrency 
    ,ExtractionDate 
FROM 
    Table 

該查詢返回2行:

ID AmountInCurrency ExtractionDate 
1 8.00    2013-10-17 10:00:00.000 
1 10.50    2013-09-16 09:00:00.000 

我要選擇的Min和Max Extrationdate到變量@mindate和@maxdate中。 現在我把結果集放到臨時表中,並從中選擇最大值和最小值。

但有可能做到這一點,否則像選擇:

ID AmountInCurrency ExtractionDate   MinExtractionDate  MaxExtractionDate 
1 8.00   2013-10-17 10:00:00.000  2013-09-16 09:00:00.000  2013-10-17 10:00:00.000 
1 10.50   2013-09-16 09:00:00.000  2013-09-16 09:00:00.000  2013-10-17 10:00:00.000 
+0

你關心其他列或只是最大值和最小值? –

+0

@MikeParkhill我只關心最大值,最小值。戈登已經回答了。 – tutu

回答

5

它看起來像你想的最小和最大日期添加爲結果集中的額外列。如果是這樣,使用窗口功能:

SELECT ID, AmountInCurrency, ExtractionDate, 
     min(ExtractionDate) over() as MinExtractionDate, 
     max(ExtractionDate) over() as MaxExtractionDate 
FROM Table; 
2
declare @mindate datetime, 
       @maxdate datetime 

select @mindate = min(extraction_date), 
      @maxdate = max(extraction_date) 
from tbl