私はデータベースを持っています、私のクエリは2テーブル(ms_recepciones & ms_estados)に関連しています。このデータベースは、モバイル修復ストアを管理するためのデータベースです。 ms_recepcionesでTable1に格納されているすべてのデータと、Table1に関連するTable2の最後のレコードを表示します。
記録、異なる状態を有することができます。これらの状態は、ms_estadosの履歴に格納されます。たとえば:[?]入院、予算、請求、キャンセル...
彼らが
キーid_recepcionによって関連している私の質問は:
私はms_recepcionesのすべてのデータを表示する必要がとステータスはms_estadosに最後に登録されたものでなければなりません。例えば
:
ms_recepcionesのid_recepcionの#50が状態を持っていた場合 - >入院、配信、請求書。請求書のみが表示されます(これは最後です)。
他のすべてのレセプションを単一のテーブルにまとめて表示する場合も同じです。
後で私はフィルタリングするために願っています:現在の状態 - >、入院、請求書などを事前に
、あなたの助けのためにどうもありがとうございました。私たちはそれをやろうとしましたが、成功しませんでした。
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