【问题标题】:SQL Select record with the most recent dateSQL 选择最近日期的记录
【发布时间】:2014-02-01 10:54:34
【问题描述】:

我想从 INNER JOINED 表中选择日期最近的记录。

Select table1.field1, table2.field1 
FROM table1
INNER JOIN table2
ON table1.field1 = table2.field1
WHERE table1.field2 = table2.field2 AND most recent date

如何在 SQL 中做到这一点?

【问题讨论】:

  • Table1 或 Table2 中是否有任何列可以存储日期?
  • 我认为这是右侧显示的每个“相关问题”之一的副本......
  • 您使用的是哪个 DBMS?后格雷斯?甲骨文?

标签: sql


【解决方案1】:
Select table1.field1, t2.field1 
FROM table1
INNER JOIN 
(
   select field1, max(field2) as mdate
   from table2
   group by field1
) t2
ON table1.field1 = t2.field1 and table1.field2 = t2.mdate

【讨论】:

    【解决方案2】:

    您需要按日期排序的 TOP 1 记录(按降序排列)

    Select TOP 1 table1.field1, table2.field1 
    FROM table1
    INNER JOIN table2
    ON table1.field1 = table2.field1
    WHERE table1.field2 = table2.field2
    ORDER BY date DESC
    

    如果 table2.field1 不是唯一字段,我可能不是您需要的。

    【讨论】:

      【解决方案3】:

      假设您的 table1 包含一个名为 date_created 的字段

      试试这个

      Select table1.field1, table2.field1 
      FROM table1
      INNER JOIN table2
      ON table1.field1 = table2.field1
      WHERE table1.field2 = table2.field2 AND table1.date_created between '2012-03-18' and '2013-03-18'
      

      【讨论】:

        猜你喜欢
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 2013-08-25
        • 2021-07-21
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        相关资源
        最近更新 更多