我正在尝试删除" AC_DETAIL"在" AC_PROPERTY"中满足特定条件的表表;但是,当我运行查询时,我收到错误"无法从指定的表中删除。"我正在使用MS Access 2010并且相当新。任何人都知道为什么这是错误的以及它如何被修复工作?
pushBroker.QueueNotification(new AppleNotification() .ForDeviceToken(deviceToken).WithAlert("Alert Body").WithBadge(1).WithSound("sound.caf").WithCustomItem("level", level).WithContentAvailable(1));
答案 0 :(得分:0)
您混合了DELETE
和SELECT
语法,您无法在DELETE
语句中显式连接表。
使用MS Access 2000,我认为您可以使用这样的解决方法(我现在无法对其进行测试,因此我不确定它是否会起作用):
DELETE AC_DETAIL.* FROM AC_DETAIL WHERE EXISTS (
SELECT 1 FROM AC_PROPERTY WHERE
AC_PROPERTY.YEAR = AC_DETAIL.YEAR AND
AC_PROPERTY.NUM = AC_DETAIL.NUM AND
AC_PROPERTY.YEAR = "2015" AND
AC_PROPERTY.REGION = "CT" AND
AC_DETAIL.SOURCE = "BPF" AND
AC_DETAIL.SCENARIO = "PRICES" AND
AC_PROPERTY.STATUS = "NO-PROD"
);
编辑:如果您在NUM
表格中有一个字段AC_DETAIL
作为主键,那么这样的内容应该有效:
DELETE FROM AC_DETAIL WHERE NUM IN (
SELECT AC_DETAIL.NUM
FROM AC_DETAIL
INNER JOIN AC_PROPERTY ON (AC_PROPERTY.YEAR = AC_DETAIL.YEAR) AND (AC_PROPERTY.NUM = AC_DETAIL.NUM)
WHERE (((AC_PROPERTY.YEAR)="2015")
AND ((AC_PROPERTY.REGION)="CT")
AND ((AC_DETAIL.SOURCE)="BPF")
AND ((AC_DETAIL.SCENARIO)="PRICES")
AND ((AC_PROPERTY.STATUS)="NO-PROD"));
);