最大和最小时间查询

时间:2009-12-14 06:26:59

标签: vba vb6 ms-jet-ace

如何使用vb6

显示第一行中的最长时间和第二行中的最小时间

1 个答案:

答案 0 :(得分:5)

怎么样:

SELECT time_value
  FROM (SELECT MIN(time_column) AS time_value FROM SomeTable
        UNION
        SELECT MAX(time_column) AS time_value FROM SomeTable
       )
 ORDER BY time_value DESC;

除非SomeTable中没有行(或者你的DBMS不支持表示法),否则应该完成这项工作。


在评论中简化每个建议 - 谢谢!

SELECT MIN(time_column) AS time_value FROM SomeTable
UNION
SELECT MAX(time_column) AS time_value FROM SomeTable
ORDER BY time_value DESC;

如果您可以从一个查询中获取两个值,则可以使用以下方法提高查询的性能:

SELECT MIN(time_column) AS min_time,
       MAX(time_column) AS max_time
  FROM SomeTable;

一个非常好的优化器可能能够在数据(或索引)的一次传递中处理UNION版本的两半,但很容易想象优化器分别处理UNION的每一半并处理数据两次。如果时间列上没有索引可以加快速度,那么可能涉及两次表扫描,这对于双值一行查询比单个表扫描要慢得多(如果表足够大,那么重要的事情)。