2013-10-17 159 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