UPDATE文で既存テーブルへのデータ振り分け登録
テーブルが2つありまして、既存テーブルには
担当者コードが入っておらず(フィールドはあります)、その担当者コードフィールドへ既存テーブルの時刻からそれに合った担当者コードを担当者テーブルからを参照し登録する作業を行いたいのですが、1つのSQL文で可能なのでしょうか?
既存テーブル
ID,InDate(時刻),UserCode(担当者コード)
1,2006-09-01 10:20:30,''
2.2006-09-02 12:10:50,''
担当者テーブル
UserCode,UserName,StartTime,EndTime
111,ABC,2006-09-01 09:00:00,2006-09-01 13:30:00
222,DEF,2006-09-02 09:00:00,2006-09-01 13:30:00
の様なデータが合った場合
既存テーブルのID1のUserCodeへ111
既存テーブルのID2のUserCodeへ222
と入れるようなSQLを作成したいのです。
update 既存テーブル set usercode =
(select b.usercode
from 既存テーブル as a,担当者テーブル as b
where a.InDate > b.starttime
and a.InDate < b.endtime);
と作成はしてみたものの
ERROR: more than one row returned by a subquery used as an expression
とエラー表示されます。
複数のレコードがあるからエラー?ってことなのでしょうか。
ver:PostgreSQL 8.1
どのようにすると、可能になるか教えてほしいのですが、どうぞよろしくお願いします。(説明がうまく出来ず申し訳ありません…)
お礼
ありがとうございます。 変更可能な事はわかりました。申し訳ありませんが変更方法も教えて頂けると助かります。