- 締切済み
UPDATE文を教えてください
管理テーブルというテーブルがあります。 フィールド構成は、会社コード(6)/支店コード(2) SEQNO(2)/管理年月(6)/管理番号(8)となっていて、SeqNOがKeyとなっています。 会社コード|支店コード SeqNO 管理年月 管理番号 (1) 000001| 01 | 01 | 200503 |00000000 (2) 000001| 01 | 02 | 200503 |00000000 (3) 000001| 02 | 03 | 200503 |00000000 (4) 000001| 02 | 04 | 200503 |00000000 (5) 000001| 01 | 05 | 200502 |11111111 (6) 000001| 01 | 06 | 200502 |11111111 (7) 000001| 02 | 07 | 200502 |22222222 (8) 000001| 02 | 08 | 200502 |22222222 こんな感じでデータがあります。 会社コード/支店コード/管理年月が同じものの管理番号は、必ず同じデータが入ります。 これは、実際のデータはさらに複雑ですが、簡単にするため変なデータに思えると思います。まあそこは気にしないでください。 実は、(1)~(4)の管理番号がミスでデータが落ちてしまいました。 管理テーブルの管理年月が200502の会社コードと支店コードが同じ管理番号を同じデータの200503の管理番号に更新するSQLを教えてください。 一応作ってみましたが、 ”単一行副問合せにより2つ以上の行が返されます。”が出てしまって・・ 分からないので教えてください。 UPDATE 管理テーブル T1 SET T1.管理番号 = (SELECT T2.管理番号 FROM 管理テーブル T2 WHERE T2.会社コード = T1.会社コード AND T2.支店コード = T1.支店コード AND T2.管理年月 = 200502) WHERE (T1.会社コード,T1.支店コード) IN (SELECT T3.会社コード,T3.支店コード FROM 管理テーブル T3 WHERE T3.管理年月 = 200503 GROUP BY T3.会社コード,T3.支店コード)
- みんなの回答 (6)
- 専門家の回答
みんなの回答
- iiikkk
- ベストアンサー率37% (92/247)
- k_o_r_o_c_h_a_n
- ベストアンサー率55% (526/942)
- taka_tetsu
- ベストアンサー率65% (1020/1553)
- k_o_r_o_c_h_a_n
- ベストアンサー率55% (526/942)
- raphel_7
- ベストアンサー率34% (86/252)
- taka_tetsu
- ベストアンサー率65% (1020/1553)
お礼
ありがとうございます。これも出来ますね。 本当にいろいろやり方があるんだなと。 すごく勉強になりました。