我有一个数据库,我的查询涉及2个表(ms_recepciones & ms_estados)。该数据库用于管理移动维修店。显示存储在表1中的所有数据以及表2中与表1相关的最后一条记录
在ms_recepciones的记录,可以有不同的状态。这些状态存储在ms_estados中的历史记录中。例如:[?]承认,预算,发票,取消...
它们由关键id_recepcion
有关我的问题是:
我需要显示ms_recepciones的所有数据和状态只能是ms_estados中最后注册的状态。
例如:
如果ms_recepciones的id_recepcion#50有过状态 - >承认,交付,开具发票。它只会显示发票(因为它是最后一张)。
与所有其他接待一样,在一张表中一起显示。
后来,我希望能够过滤:当前状态 - >发票,录取等
在进步,非常感谢你的帮助。我们试图做4人,但没有成功。
SELECT
r.id_recepcion, coalesce(max(e.fecha_estado), '0000-00-00 00:00:00') as UltFecha, e.id_estado, e.estado
FROM
ms_estados e
INNER JOIN
ms_recepciones r
ON
r.id_recepcion = e.id_recepcion
GROUP BY
e.id_recepcion
这段代码我试过了,但是第一行是不正确的。
问候。
感谢您的回答。我会检查你提供的链接。我也会尝试另一种类型的查询。也许COALESCE不适合这种情况。 –
''COALESCE''不是问题。问题在于'max(e.fecha_estado)''返回的行与''e.id_estado,e.estado''返回的行之间不存在关联。 – kmoser