タイトルが示すように、下位レベルの割り当てを持つ別の tableB の列 b1 から、tableA の下位レベル .1 列 a1 の階層 tableA を更新しようとしています。ルールは、tableA.aid=tableB=bid およびフィルター tableA.lvl_nbr=7 (下位レベル) の場合、tableB.rcdind を tableA.asgnflg に割り当てることです。
次のようにエラーをスローします
ORA-01427: 以下の更新クエリを実行すると、単一行のサブクエリが複数の行を返します。
UPDATE tableA A
SET A.asgnflg=(SELECT B.rcdind FROM
(SELECT A.aid ,C.rcd_ind FROM tableA A,(SELECT DISTINCT B.bid,B.rcdind FROM tableA A,tableB B WHERE A.aid=B.bid)C
WHERE A.aid=C.bid
AND A.lvl_nbr=7
))
テーブル A の援助のカウントは 443 で、テーブル B の個別の入札カウントは 138 です。
サブクエリでループを使用して、入札と同じ援助をチェックし、列 A.asgnflg を更新できますか?