MYSQL は最後の値で条件付きでグループ化します
P粉037450467
P粉037450467 2023-09-14 15:37:56
0
1
452

私の状況を説明します。 MySQL 5.7

レジストリとモバイルという 2 つのテーブルがあります。 これら 2 つのテーブルには IDMovement という共通点があるため、結合できます

###私の質問:

Registry 列 (varchar 列) でグループ化する必要があり、MAX IDMovement を確認する必要があります。この行には、IDCausal という名前の別の列があります。 MAX IDMovementIDCasual が 21 と異なる場合はスキップします。それ以外の場合は行を返します。

私がやったことの例を示します:

リーリー

WHERE は単なる例であり、各レジ​​ストリをクエリする必要があることに注意してください。

レジストリ 2SST0160 の戻り値は次のとおりです:

リーリー

この例では、MAX IDMovement は 9817 ですが、IDCausal は 5 であるため、この例のクエリの予期される結果は NOTHING です。 IDCausal が 21 の場合、期待される結果は 21 行のみです。各レジストリについて、結果はレジストリごとに 0 行または 1 行になると予想します。

理解できたと思います。ご協力ありがとうございました。

P粉037450467
P粉037450467

全員に返信(1)
P粉165522886
WITH newtable AS ( SELECT
    m.IDMovement,
    mo.IDCausal,
    m.Registry
FROM
    registry m
    JOIN movement mo ON m.IDMovement = mo.IDMovement
WHERE
    m.Registry = '2SST0160' )
SELECT * FROM newtable
    WHERE (SELECT IDCausal FROM newtable ORDER BY IDMovement DESC LIMIT 1) = 21
    ORDER BY IDMovement DESC LIMIT 1;
いいねを押す +0
人気のチュートリアル
詳細>
最新のダウンロード
詳細>
ウェブエフェクト
公式サイト
サイト素材
フロントエンドテンプレート