【问题标题】:SQL command: get min date and hour from tableSQL 命令:从表中获取最小日期和小时
【发布时间】:2013-07-28 17:32:05
【问题描述】:

SQL 命令:从表中获取最小日期和小时

TblAzmon: 代码(pk) |姓名 |日期 |一小时 | ADcode_fk -------------------------------------------------- -------------------------- 1 系统 1358/05/05 08:00 2 2 图形 1389/05/05 08:00 1 3 模拟 1392/05/06 07:30 1 4 数学 1389/05/05 09:00 1

我希望管理器(ADcode)的输出日期和时间最小。

所需的输出:[其中 ADcode_fk='1']

代码 |日期 |一小时 ---------------------------------- 2 1389/05/05 08:00

SQL 命令:

select Acode,Adate,Ahour from TblAzmon<br>
where Adate in (select min(Adate) from TblAzmon where ADcode_fk='1')
And Ahour in (select min(Ahour) from TblAzmon where ADcode_fk='1')

输出:--------->0 行 - NULL

  • 提示:所有列都是文本类型。除了 Acode 列。

请编写 SQL 代码。

【问题讨论】:

  • 其他人已经提供了答案。您的查询的问题是您分别找到了最短日期和最短小时。碰巧没有一行具有 both 值。

标签: sql sql-server ms-access ms-access-2007


【解决方案1】:

你可以这样做,使用 order by 和 top:

select top 1 *
from tblAzmon a
order by Adate, Ahour

【讨论】:

  • 如果我打算经常执行查询,我不会使用它。如果你不这样做,那很好。
【解决方案2】:

假设您指的是日期和时间的最早组合,您可以使用order by 和top 来做到这一点:

select top 1 *
from tblAzmon a
order by Adate, Ahour

【讨论】:

    【解决方案3】:

    您的 SQL 不起作用,因为您一次选择了 minHour 和 minDate,并且由于 min(Date) 没有 min(Hour),因此您返回 0 行。

    你需要将它们分开并像这样一一选择它们。有了这个你应该可以自己做=)

    SELECT Acode,Adate,min(Ahour) 
    FROM (Select Acode,min(Adate),Ahour FROM TblAzmon WHERE ADcode_fk='1') t
    WHERE ADcode_fk='1'
    

    【讨论】:

      猜你喜欢
      • 2022-10-13
      • 1970-01-01
      • 1970-01-01
      • 2019-04-11
      • 1970-01-01
      • 2013-04-24
      • 2013-04-01
      • 2020-03-28
      • 2020-02-12
      相关资源
      最近更新 更多