2012-10-28 58 views
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)); 

回答

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)