sql >> データベース >  >> RDS >> Sqlserver

SQLでの送信データ行と受信データ行のペアリング

    select *
    from
        (select * from T where Action = 'SENT') s
        left outer join
        (select * from T where Action = 'RECEIVED') r
            on r.Module and s.Module and r.User = s.User and r.Batch = s.Batch
    

    限られた量のサンプルデータから、共通のmoduleを使用することで、一致を一意に判別できるようです。 、user およびbatch 。クエリで重複を思いついた理由がわかりません。他の唯一の問題は、まだ「受信」がない「送信」を維持するために外部結合を使用しているようです。

    私はあなたがまだ結果のすべてを望んでいたと思います。ペアになっていないシナリオのみが必要な場合は、次を追加します。

    where r.Module is null
    


    1. テーブルを2回参照するSQLSELECTステートメント

    2. MySQLに保持されているキーやその他の構造機能を使用してテーブルを複製するにはどうすればよいですか?

    3. Oracleパイプライン関数の例

    4. mysql結果セットをループする方法