をマッチングに基づく私は私が得る、MASTER_CUSTOMER
でMCUST_CODE
がDIM_TRADING_ACCOUNTS
のTRADING_CODE
に等しくないとにかかわらず、私がしようとするものMASTER_CUSTOMER
のGPID
フィールドに基づいてテーブルDIM_TRADING_ACCOUNTS
のGPID
フィールドを更新しようとしています基本的には毎回構文エラーになります。OracleのSQL更新表ID
私はthis questionからガイダンスを取っています。私がこれまでに作った4つの試みは、誤りとともに以下にあります。誰かが私が働くOracle SQLの適切な構文を手伝ってくれますか?
注:trading_code
フィールドはすべて大文字であるので、私はmcust_code
にアッパーに使用
試み1(エラーは次のとおりです。SQLコマンドが正常に終了しない)
UPDATE dim_trading_accounts dta
SET dta.gpid = mc.gpid
FROM master_customer mc
WHERE UPPER(mc.mcust_code) = dta.trading_code;
試行2(エラー:「SET」キーワードがありません)
UPDATE
dim_trading_accounts dta, master_customer mc
SET
dta.gpid = mc.gpid
WHERE
upper(mc.mcust_code) = dta.trading_code;
試み3(この1つはエラーを返し:単一行のサブクエリは、一行以上を返す)
UPDATE dim_trading_accounts dta
SET dta.gpid = (SELECT mc.gpid
FROM master_customer mc
WHERE dta.trading_code = upper(mc.mcust_code))
WHERE EXISTS (SELECT 1
FROM master_customer mc
WHERE dta.trading_code = upper(mc.mcust_code));
試み4(エラーがある:欠落キーワード "ON")
MERGE INTO dim_trading_accounts
USING master_customer
ON dim_trading_accounts.trading_code = upper(master_customer.mcust_code)
WHEN MATCHED THEN
UPDATE
SET dim_trading_accounts.gpid = master_customer.gpid;
はい、私はこれを発見し、面白い事があります私はまだエラーが発生します。 *(残りの部分を更新し、手動で複数のものをチェックしたいから、それらを除外しました)* –
あなたはあなたが使用している完全なクエリを表示できますか? –
nevermind、私は事故で逃した他の2人の犯罪者を見つけました:) ...助けてくれてありがとう:)私はそれを今すぐに持っていると思う:) :)私は 'Max'ソリューションを使わなかった私は何が更新されるかについて具体的にする必要がある、私は正しい方向に私を得たので、この答えを選択します。 –