【发布时间】: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