0
異なるテーブルの条件に基づいてあるテーブルのレコードを削除したいが、「削除するレコードを含むテーブルを指定する」というエラーメッセージが表示されます。 (私はテーブル "RO"のすべてのレコードを削除したい、テーブル "CO"は基準目的のためだけです)。コピー&ペーストするための適切なSQLを提供してください(私はSQLを知らず、クエリビルダーを使用しています)。ここで異なるテーブルの条件に基づいて1つのテーブルのレコードを削除する
DELETE CO.ID, CO.PRINTED_DATE, RO.STATUS, RO.orderID, RO.CREATE_DATE, RO.NAME, RO.cust_ID, RO.lines, RO.PICKER, RO.COMMENTS, RO.sls_rep, RO.weight, RO.PO_number, RO.Tracking_Number, RO.ship_via, RO.nmbrOfBoxes
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));
私はエラーを取得する:「Microsoft Jetデータベースエンジンが認識しない有効なものとして 『tmpReleasedOrdersを*。』フィールド名または式。修正は、 'DELETE tmpReleasedOrders。* FROM tmpReleasedOrders AS RO ...'を 'DELETE RO。* からtmpReleasedOrders AS RO ... ' – onedaywhen
"削除にフィールド名を指定する必要はありません。 - 列リストのプレースホルダーとして '*'を使うことや、テーブル自体ではなくテーブルの相関名を指定することが大変なことではありません。私はこれが好きです: 'DELETE FROM tmpReleasedOrdersどこのステータス( 'C'、 'X')または存在しないか(SELECT * FROM SYSADM_CUSTOMER_ORDER CO COID = tmpReleasedOrders.orderID); ' – onedaywhen
私は同じ問題を抱えています。 JohnFxの提案に基づいて構文を修正しようとしました。ここに私のコードです。テーブル名のスペースによって問題が発生していますか?登録ユーザーテーブルはSharepointサイトにリンクされています。 (登録ユーザー).ModUseID = RegisteredUsersInventory.ModUseID)WHERE(RegisteredUsersInventory.ModUse_EndDT Is Null); 'DELETE [登録ユーザー]。* FROM [登録ユーザー] INNER JOIN RegisteredUsersInventory ON – RBSt