【问题标题】:min(value) and Max(value) for the particular modified date特定修改日期的 min(value) 和 Max(value)
【发布时间】:2010-11-01 10:02:12
【问题描述】:

如何获取修改日期的最小值和最大值列值

我想选择特定日期的顶部和底部列值。

表格:

 **DATE**     **MODIFIED DATE**  **VALUE**

03:02:2009  04:02:2009  100
03:02:2009  04:02:2009  200
03:02:2009  04:02:2009  400
04:02:2009  05:02:2009  150
04:02:2009  05:02:2009  200
04:02:2009  05:02:2009  500

在我的表中 - 日期列和值列存在

如何获取特定修改日期的 min(value) 和 Max(value)?

修改日期应该是 n 个日期,假设我从这个修改日期到 这个修改日期

我想要这样的输出

MODIFIED DATE   MIN VALUE   MAX VALUE
04:02:2009  100 400
05:02:2009  150 500

【问题讨论】:

    标签: sql-server


    【解决方案1】:
    SELECT ModifiedDate, MIN(Value), MAX(Value)
    FROM TheTable
    GROUP BY ModifiedDate
    ORDER BY ModifiedDate
    

    编辑重新评论;不清楚你想如何计算ModifiedDate,但是对于一个简单的公式,只需内联它:

    SELECT DATEADD(day, 1, Date) AS [ModifiedDate], MIN(Value), MAX(Value)
    FROM TheTable
    GROUP BY DATEADD(day, 1, Date)
    ORDER BY DATEADD(day, 1, Date)
    

    对于更复杂的东西,任何来自:

    • 表变量 (@table)
    • 临时表 (#table)
    • 子查询

    【讨论】:

    • 没有修改日期列不在数据库中,修改日期列是在运行时创建的,那么如何获取特定修改日期的第一行和最后一行
    • 那么,我如何计算修改?从问题上看不清楚。
    • 对于您的查询,最小值和最大值未根据修改日期列显示,它仅根据日期列显示日期、修改日期、值 - 我的表中的 3 列日期和值列在执行查询时从表中直接显示修改日期在执行查询时显示,它不在表中然后如何获取特定修改日期的最小值(值)和最大值(值)
    • 在这两个例子中我都使用 ModifiedDate;我以什么方式使用日期?
    【解决方案2】:

    马克·格拉维尔,

    表格

    DATE    VALUE
    22:02:2009  200
    22:02:2009  400
    22:02:2009  100
    24:02:2009  250
    24:02:2009  400
    24:02:2009  800
    

    (从表格中选择日期,...)

    在执行上述查询时,下面提到的表格正在显示

    DATE    MODIFIED DATE   VALUE
    22:02:2009  23:02:2009  200
    22:02:2009  23:02:2009  400
    22:02:2009  23:02:2009  100
    24:02:2009  25:02:2009  250
    24:02:2009  25:02:2009  400
    24:02:2009  25:02:2009  800
    

    这里留下日期栏;正是我需要修改日期的最小值(值)和最大值(值)

    我需要这样的输出

    DATE    MN VALUE    MAX VALUE
    22:02:2009  200 100
    24:02:2009  250 800
    

    注意:不要评估列值,我只需要特定日期的最高值和最低值。

    【讨论】:

    • 您没有在此处添加 任何内容 来帮助我理解问题,因此可以提供更多帮助。更糟糕的是:您增加了混淆 - 新结果似乎不涉及修改日期,结果似乎没有意义(为什么 400 不是 22:02:2009 的最大值?)。我给出了两种方法——如果都不适合,你将不得不说出原因。我们不是通灵者,我们无法从这里读取您的屏幕。
    • 如果我们使用最小值和最大值意味着它只显示最小值和最大值我需要修改日期的顶部列值和底部列值例如:修改日期列值是 - 200、100、400、600 , 500 只需要 - 100 和 500 使用子查询
    • 我正在使用子查询,因为我需要修改日期的顶部和底部值
    • 除非您添加排序,否则表格不会自然排序。 没有顶部/底部的真正含义,除非您添加诸如自动增量标识列之类的内容。
    猜你喜欢
    • 2012-06-26
    • 1970-01-01
    • 2020-09-09
    • 1970-01-01
    • 2021-01-27
    • 1970-01-01
    • 2019-04-06
    • 2021-05-19
    • 1970-01-01
    相关资源
    最近更新 更多