SQL查询从结果集查询中选择最大最小值

时间:2013-10-17 22:19:28

标签: sql sql-server select

我有一个带有查询的存储过程:

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

2 个答案:

答案 0 :(得分:6)

看起来您希望将最小和最大日期添加为结果集中的额外列。如果是这样,请使用窗口函数:

SELECT ID, AmountInCurrency, ExtractionDate,
       min(ExtractionDate) over () as MinExtractionDate,
       max(ExtractionDate) over () as MaxExtractionDate
FROM Table;

答案 1 :(得分:2)

declare @mindate datetime,
              @maxdate datetime

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