我有两张桌子:
TABLE_1:
| ID | numero | apagado
| 1 | 23 | 0
| 2 | 56 | 0
| 3 | 156 | 0
| 4 | 48 | 0
TABLE_2:
| ID_Table_1 | data_inspecao |
| 1 | 2014-01-03 |
| 2 | 2014-01-08 |
| 1 | 2014-02-20 |
| 4 | 2014-01-06 |
| 2 | 2014-01-23 |
我想为所有'numero'获取最新的'data_inspecao'。
在我的例子中,我想要以下结果:
| ID_Table_1 | data_inspecao |
| 1 | 2014-02-20 |
| 2 | 2014-01-23 |
| 4 | 2014-01-06 |
我有以下SELECT语句,但是如果我为'ASC'更改'DESC'结果是相同的,我没有得到最新的'data_inspecao':
SELECT
e.numero, i.data_inspecao
FROM
table_1 e
INNER JOIN
table_2 i ON i.ID_Table_1 = e.numero
WHERE
e.numero = 6 AND e.apagado = 0
GROUP BY
e.numero
ORDER BY
i.data_inspecao DESC
感谢任何帮助
答案 0 :(得分:2)
使用添加了MAX
聚合
SELECT
e.numero, Max(i.data_inspecao) as MostRecentDate
FROM
table_1 e
INNER JOIN
table_2 i ON i.ID_Table_1 = e.numero
GROUP BY
e.numero
ORDER BY
e.numero
答案 1 :(得分:0)
SELECT i.ID_Table_1, MAX(i.data_inspecao )
FROM table_1 e
INNER JOIN table_2 i ON i.ID_Table_1 = e.ID
GROUP BY i.ID_Table_1
答案 2 :(得分:0)
您说您想要所有data_inspecao
的最新numero
。但是在您的“我想要以下结果”的示例中,您似乎想要data_inspecao
的最新ID_table_1
。这两个需要非常不同的查询。在写我的查询之前,我会尝试澄清这一点。
如果您想获取所有data_inspecao
的最新numero
,我会尝试使用@Milen Pavlov的答案。
但是如果你真的想要得到像你的示例结果表那样的结果,我会尝试这个查询:
SELECT ID_TABLE_1, MAX(data_inspecao)
FROM Table_2
GROUP BY ID_TABLE_1;