0

マッチングに基づいてソーステーブルの値でassignment_type_descテーブルで呼び出された列を更新する必要があります。問題は、NULLのレコードが2つあり、の値が異なることです。これらのレコードは必要ないため、updateステートメントに条件を含めました。ただし、updateステートメントは依然として単一行のサブクエリを返し、複数の行エラーを返します。randm_samplerclm_snapshotclaim_idclm_snapshotclaim_idassignment_type_descNOT NULL

UPDATE RANDM_SAMPLER SET ASSIGNMENT_TYPE_DESC =
  (SELECT DISTINCT A.ASSIGNMENT_TYPE_DESC 
     FROM CLM_SNAPSHOT A, 
          RANDM_SAMPLER B
    WHERE A.CLAIM_ID = B.CLAIM_ID 
      AND A.CURRENT_SNAPSHOT_IND='Y'
      AND A.HO_CONSULTANT_SEQ_NBR = (SELECT MAX(HO_CONSULTANT_SEQ_NBR) 
                                       FROM CLM_SNAPSHOT C 
                                      WHERE A.CLAIM_ID = C.CLAIM_ID 
                                        AND C.CLAIM_ID IS NOT NULL 
                                      GROUP BY CLAIM_ID)
      AND A.CLAIM_ID IS NOT NULL ) 

NULL重複は、の値を持つレコードからのものであると私は絶対に確信していますclaim_id。しかし、このNOT NULL条件はここでは効果的ではないようです。誰かがこれを手伝ってくれますか?

4

1 に答える 1

2

次の UPDATE ステートメントを試してください。

UPDATE RANDM_SAMPLER SET ASSIGNMENT_TYPE_DESC =
  (SELECT DISTINCT A.ASSIGNMENT_TYPE_DESC 
     FROM CLM_SNAPSHOT A
    WHERE A.CLAIM_ID = RANDM_SAMPLER.CLAIM_ID 
      AND A.CURRENT_SNAPSHOT_IND='Y'
      AND A.HO_CONSULTANT_SEQ_NBR = (SELECT MAX(HO_CONSULTANT_SEQ_NBR) 
                                       FROM CLM_SNAPSHOT C 
                                      WHERE A.CLAIM_ID = C.CLAIM_ID 
                                        AND C.CLAIM_ID IS NOT NULL 
                                      GROUP BY CLAIM_ID)
      AND A.CLAIM_ID IS NOT NULL ) 

サブクエリから RANDM_SAMPLER への JOIN を削除し、代わりにテーブルへのリンクを更新するため、非常に重要な条件を追加しました。

A.CLAIM_ID = RANDM_SAMPLER.CLAIM_ID

おそらく同じことを試みましたが、テーブル B を追加すると状況が悪化しました。そして、外側のテーブルへの接続はありませんでした。

于 2013-01-01T16:46:09.690 に答える