2016-09-23 17 views
0

テーブル内の複数の選択行を更新するには問題があります。これは私のクエリです。 誰もが問題を知っていますか?複数の選択行を更新する方法

--update mvp_employer-- 
set (MEI_EMP_CAT_CD) = 
(select case when a.MEI_EMP_CAT_CD is not null then a.MEI_EMP_CAT_CD else b.MEI_EMP_CAT_CD end MEI_EMP_CAT_CD 
from (
select MEI_ROC_NO,MEI_DOC_TYP_CD,MEI_EMP_CAT_CD from jimd2.mvp_employer 
where mei_roc_no in (select mei_roc_no from MVP_EMPLOYER 
WHERE MEI_DOC_TYP_CD IN ('632','999') 
group by mei_roc_no having count(*) >1) 
and MEI_DOC_TYP_CD IN ('632') 
order by mei_roc_no, mei_doc_typ_cd) a 
FULL JOIN 
(
select MEI_ROC_NO,MEI_DOC_TYP_CD,MEI_EMP_CAT_CD from jimd2.mvp_employer 
where mei_roc_no in (select mei_roc_no from MVP_EMPLOYER 
WHERE MEI_DOC_TYP_CD IN ('632','999') 
group by mei_roc_no having count(*) >1) 
and MEI_DOC_TYP_CD ='999' 
order by mei_roc_no, mei_doc_typ_cd) b 
on a.mei_roc_no = b.mei_roc_no 
) 
where MEI_DOC_TYP_CD IN ('632') 
and mei_roc_no ='AS0002107-A' 

ERROR: - エラーコード-811、SQL状態21000:DB2 SQLエラー:SQLCODE = -811、SQLSTATE = 21000、SQLERRMC =ヌル、DRIVER = 3.53.95

+0

SELECTのスタンドアロンを実行できますか? (すべてのバージョン、すなわちサブクエリと完全な。) – jarlh

+0

* MEI_EMP_CAT_CD PS PS PS PS PS PS * は、これは私のresult.itがyoueが助けるために多くの行 –

答えて

0

あなたはおそらくお読みくださいエラーメッセージ:

SQL0811N The result of a scalar fullselect, SELECT INTO statement, or VALUES INTO statement is more than one row

は、だからあなたのクエリは、より多くの行を返し、DB2はあなたのset句に割り当てるするかを知りません。 クエリを修正してください - あなたのニーズに応じて異なるものを追加してください - そしてもう一度やり直してください

+0

Tqのを返すことです。はい正解。私の結果は、多くの行を表示します。しかし、実際には、私は本当にすべての行を一度更新したいと思います。 –

+0

サブクエリから返された個々の値ごとに複数の行を更新する場合は、更新で相関サブクエリを検索します。 – MichaelTiefenbacher

関連する問題