【问题标题】:Working with 2 different tables and getting the latest/most recent values values使用 2 个不同的表并获取最新/最近的值
【发布时间】:2013-07-11 17:03:41
【问题描述】:

在 Microsoft SQL 中苦苦挣扎了几个小时。

我有 2 张桌子。

Table1
ID | STOCK | STATUS
-----------------------------
1  | 1     | Out
2  | 1     | In
3  | 1     | Out
4  | 2     | Out
5  | 2     | In

Table2
ID | DATE
---------------
1  | 2013-07-01
2  | 2013-07-02
3  | 2013-07-03
4  | 2013-07-01
5  | 2013-07-02

我想获取最新的 STOCK 以及最新的 DATE 和 STATUS

->结果必须是

结果表

ID| STOCK | STATUS | DATE
-------------------------------
3 | 1     | Out    | 2013-07-03
5 | 2     | In     | 2013-07-02

我做了以下事情:

SELECT Table1.*, Table2.* FROM Table1, Table2 WHERE Table1.ID=Table2.ID

这会连接表,但会提供所有 5 条记录。所以我想我会像这样使用MAX() 函数

SELECT Table1.*, MAX(Table2.ID),Table2.Date  FROM Table1, Table2 WHERE Table1.ID=Table2.ID GROUP BY Table2.Date

但这不会在查询窗口中运行。

【问题讨论】:

    标签: sql sql-server group-by max


    【解决方案1】:
    SELECT t1.id, t1.stock, t1.status, t5.mdate
    FROM Table1 t1
    inner join Table2 t2 on t1.id = t2.id
    inner join
    (
       select t3.stock, max(t4.date) as mdate
       from table1 t3
       inner join Table2 t4 on t3.ID = t4.ID
       group by t3.stock
    ) t5 on t5.stock = t1.stock and t5.mdate = t2.date
    

    SQLFiddle demo

    【讨论】:

    • 应该是 t3.max(date) 还是 max(t3.date) ?
    • 是的,这是一个错字。谢谢。
    • +1 能否请您发布 JS Fiddle 以便我可以修改您的代码 :)
    【解决方案2】:

    使用这个:

    Select t1.id,t1.stock,t1.status,t2.date
    FROM Table1 as t1,Table2 as t2
    Where t1.id=t2.id
    Order By t2.date DESC
    LIMIT 1
    

    【讨论】:

    • 您的代码可以运行 99%,但我忘了说明我有 MS SQL,因此 LIMIT 没有在我的系统上实现。 MS SQL 上有什么替代 LIMIT 的方法?
    • MS SQL TOP() 相当于 My Sql LIMIT
    • Select TOP 1 t1.id,t1.stock,t1.status,t2.date FROM Table1 as t1,Table2 as t2 Where t1.id=t2.id Order By t2.date DESC ->当我运行它时,我只返回第一行,将值增加到 TOP 5 例如返回 STOCK in 1-> 1-> 1-> 2-> ->2 我只希望返回最新的 1 -> 2
    猜你喜欢
    • 2012-03-16
    • 2021-07-01
    • 1970-01-01
    • 2014-09-23
    • 1970-01-01
    • 1970-01-01
    • 2020-12-30
    • 2015-04-28
    • 1970-01-01
    相关资源
    最近更新 更多