-2

私の要件ではこれが必要なので、削除内で選択を2回使用できますが、データベースで試行するとORA-00936「式がありません」というエラーが発生します。

DELETE FROM GLTB_REIM_DETAILS_TABLE_MAP WHERE
SELECT REPORT_NAME_C
FROM PRTB_REIM_REPORT_MAP, prtb_pay_remb_claims
WHERE (SELECT PAY_ELEMENT_CODE_C
  FROM PRTB_PAY_REMB_CLAIMS
  WHERE voucher_no_n='W288'
  AND emp_id_c      ='78881');

このクエリを解決するのに役立ちます!!!

4

3 に答える 3

0

テーブル PRTB_REIM_REPORT_MAP と prtb_pay_remb_claims の間の結合が欠落していると思います。もっと役立つテーブル宣言を見てください。ただし、削除ステートメントは次のようにする必要があります。

DELETE FROM GLTB_REIM_DETAILS_TABLE_MAP A
WHERE EXISTS (SELECT REPORT_NAME_C
   FROM PRTB_REIM_REPORT_MAP, prtb_pay_remb_claims
   WHERE EXISTS (SELECT *
      FROM PRTB_PAY_REMB_CLAIMS
      WHERE voucher_no_n = 'W288'
      AND emp_id_c = '78881'));
于 2013-10-05T08:54:48.510 に答える
0

試す

DELETE FROM GLTB_REIM_DETAILS_TABLE_MAP A
 WHERE A.TABLEFIELD in (SELECT REPORT_NAME_C
    FROM PRTB_REIM_REPORT_MAP B, prtb_pay_remb_claims C
   WHERE B.TABLEFIELD in (SELECT PAY_ELEMENT_CODE_C
      FROM PRTB_PAY_REMB_CLAIMS
     WHERE voucher_no_n = 'W288'
       AND emp_id_c = '78881'));
于 2013-10-05T08:44:23.333 に答える