1

ローカル Access テーブルに対してこの削除クエリを実行しようとしていますが、エラー メッセージが表示されます

指定されたテーブルから削除できません

コピーして貼り付ける適切な SQL を教えてください。

事前にどうもありがとう、ナサニエル

DELETE RO.*, RO.STATUS, CO.ID, CO.PRINTED_DATE
FROM tmpReleasedOrders AS RO 
LEFT JOIN SYSADM_CUSTOMER_ORDER AS CO ON RO.orderID = CO.ID
WHERE (((RO.STATUS)="C" Or (RO.STATUS)="X")) OR (((CO.ID) Is Null)) OR (((CO.PRINTED_DATE) Is Null));
4

1 に答える 1

1

このクエリは、ID に一意のインデックスを持つ SYSADM_CUSTOMER_ORDER に依存します。

DELETE ro.*
FROM tmpReleasedOrders AS ro
LEFT JOIN SYSADM_CUSTOMER_ORDER AS CO 
ON RO.orderID = CO.ID
WHERE RO.STATUS="C" Or RO.STATUS="X" OR CO.ID Is Null OR CO.PRINTED_DATE Is Null

SYSADM_CUSTOMER_ORDER に索引がない場合は、次の行で何かを使用できます。

DELETE tmpreleasedorders.*
FROM tmpreleasedorders
WHERE  status IN ( "c", "x" )
OR orderid IN (
   SELECT orderid
   FROM   tmpreleasedorders AS ro
   LEFT JOIN sysadm_customer_order AS CO
   ON RO.orderid = CO.id
   WHERE  CO.id IS NULL
   OR CO.printed_date IS NULL) 
于 2012-10-29T00:05:17.113 に答える