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

SQL更新(助けてください)

    まず、更新が必要なレコードを特定します:

    select *
    from tbl_order o
    inner join tbl_group g on
        g.grp_id = o.grp_id
    inner join tbl_indicator i on
        i.grp_nbr = g.grp_nbr
        and i.sect_nbr = g.sect_nbr
    where
        g.indicat != i.indicat
    

    ここで、クエリを変更して、これらのレコードを正しい grp_id で更新します。 「g2」というエイリアスを使用して、tbl_group テーブルに追加の結合を追加したことに注意してください。これが正しいグループになります。

    update o set
        o.grp_id = g2.grp_id
    from tbl_order o
    inner join tbl_group g on
        g.grp_id = o.grp_id
    inner join tbl_indicator i on
        i.grp_nbr = g.grp_nbr
        and i.sect_nbr = g.sect_nbr
    inner join tbl_group g2 on
        g2.grp_nbr = i.grp_nbr
        and g2.sect_nbr = i.sect_nbr
        and g2.indicat = i.indicat
    where
        g.indicat != i.indicat
    

    tbl_group g2 の内部結合により、indicat が関連する tbl_indicator レコードの indicat 値と一致する tbl_group レコードが存在しない場合、レコードは更新されないことに注意してください。




    1. PHPでの入力と出力のクリーニングの聖杯?

    2. Forループを使用してOracleでカーソルからデータをフェッチする方法

    3. ColdFusionとMySQLで挿入した後にテーブルIDを取得する

    4. Spring および JDBCTemplate で使用される Oracle データ ソース接続プールが機能しない