0

わかりました..私は脳のおならの瞬間を持っていると確信しています..しかし、何らかの理由で私はこのアップデートを機能させることができません。私は2つのテーブルを持っていますが、別のテーブルの8列から8列に情報をコピーしようとしています。..これは私がこれまでに持っているものです

update a
set a.denialcharge_cost = b.denial_cost
    , a.epd_cost = b.early_default_payment
    , a.expeditecharge_cost = b.expeditecharge
    , a.duediligence_cost = b.duediligence
    , a.deskreview_cost = b.deskreview
    , a.servicing_cost = b.servicingcharge
    , a.mers_cost = b.merscharge
    , a.qcplans_cost = b.qcplans
from orderheader a 
inner join clients b
on a.prnt_id = b.id

エラーが発生します

Msg 512, Level 16, State 1, Procedure UpdateOrderHeader, Line 13
Subquery returned more than 1 value. This is not permitted when the subquery follows =, !=, <, <= , >, >= or when the subquery is used as an expression.
The statement has been terminated.

クライアントにx個のクライアントがあります。orderheaderにy個の注文があります。すべての注文に1つのクライアントを含めることができます。すべてのクライアントに複数の注文を含めることができます...orderheaderのprnt_idのidはclientsテーブルにあります。任意の助けをいただければ幸いです...私はdenial_cost、early_default_payment、expeditecharge、duediligence、deskreview、servingcharge、merscharge、qcplansをクライアントからorderheaderにコピーしようとしています

4

3 に答える 3

2

前の質問に対するこの回答、および私たちが行った他のすべてのトラブルシューティングに基づいて、どこかに邪魔になるトリガーがあるように見えます。無効にしてアップデートを実行してみてください。

于 2012-05-03T19:13:07.590 に答える
0

そのようなものは(フォーマットで)機能するはずです

update orderheader
set denialcharge_cost = b.denial_cost, 
    epd_cost = b.early_default_payment,
    expeditecharge_cost = b.expeditecharge,
    duediligence_cost = b.duediligence,
    deskreview_cost = b.deskreview, 
    servicing_cost = b.servicingcharge,
    mers_cost = b.merscharge, 
    qcplans_cost = b.qcplans
from clients b 
where orderheader.prnt_id = clients.id
于 2012-05-03T17:02:55.823 に答える
0

私がエラーについて理解していることから、あなたはどこかで1つの結果だけをフェッチしようとしていますが、サブクエリはフィールド以上のものを返します。

お気に入り

ccからのカウントでエラーが発生するため、select(select * from bb)

サブクエリはネストされたクエリからフィールド以上のものを返すため

于 2012-05-03T17:07:14.193 に答える