我在删除记录上有问题。我使用一个名为Asset_ID的字段链接两个表,该字段是我的主键。我创建一个查询来提取所有不匹配的记录,所以那些不匹配的记录我想要删除。当我运行查询时,它会给我一个错误:“不能从指定的表中删除”,我做了一些研究,他们建议转到我的delete查询属性,并将“唯一记录”选项更改为“是”。没起作用。请帮我处理这个。
我正在使用Access 2010查询生成器来完成这个任务,但是下面是Sql代码:
DELETE DISTINCTROW [HANDHELD TABLE1 Without Matching HANDHELD TABLE].ASSET_ID
FROM [HANDHELD TABLE1 Without Matching HANDHELD TABLE]
WHERE ((([HANDHELD TABLE1 Without Matching HANDHELD TABLE].ASSET_ID) Is Not Null));这里是我的手持TABLE1,没有匹配的手持表Sql。
SELECT [HANDHELD TABLE1].ASSET_ID, [HANDHELD TABLE1].INSPECTION_NUMBER, [HANDHELD TABLE1].INSPECTION_FLUSH, [HANDHELD TABLE1].LAST_PRESSURE, [HANDHELD TABLE1].LAST_INSPECT_DATE, [HANDHELD TABLE1].ADDRESS, [HANDHELD TABLE1].LOCATION_DESCRIPTION1, [HANDHELD TABLE1].COMMENTS, [HANDHELD TABLE1].MUNICIPALITY, [HANDHELD TABLE1].PRESSURE_ZONE, [HANDHELD TABLE1].FACILITY_CATEGORY, [HANDHELD TABLE1].LIFECYCLESTATUS, [HANDHELD TABLE1].MANUFACTURER, [HANDHELD TABLE1].INSP_BY, [HANDHELD TABLE1].PAINT, [HANDHELD TABLE1].[GROUND CLEARANCE], [HANDHELD TABLE1].[CURB CLEARANCE], [HANDHELD TABLE1].OBSTRUCTIONS, [HANDHELD TABLE1].[STUFFING BOX LEAK], [HANDHELD TABLE1].[CAULKING LEAK], [HANDHELD TABLE1].CAPS, [HANDHELD TABLE1].DRIP, [HANDHELD TABLE1].[DRIP COMMENTS], [HANDHELD TABLE1].FLUSHED, [HANDHELD TABLE1].[OIL STUFFING BOX], [HANDHELD TABLE1].[OIL CAPS], [HANDHELD TABLE1].DRAINAGE, [HANDHELD TABLE1].[DRAINAGE COMMENTS], [HANDHELD TABLE1].LUBRICATION, [HANDHELD TABLE1].[OPERATING NUT], [HANDHELD TABLE1].[OPERATING NUT COMMENTS], [HANDHELD TABLE1].NOZZLE, [HANDHELD TABLE1].[NOZZLE COMMENTS], [HANDHELD TABLE1].[MAIN WASHER], [HANDHELD TABLE1].[INSPECTION YEAR], [HANDHELD TABLE1].[TIME INSPECTED], [HANDHELD TABLE1].NOISE, [HANDHELD TABLE1].TIMEOPENED, [HANDHELD TABLE1].TIMECLOSED, [HANDHELD TABLE1].TIMETOCLEAR, [HANDHELD TABLE1].OPENEDCOLOR, [HANDHELD TABLE1].CLOSEDCOLOR, [HANDHELD TABLE1].FLUSHREMARKS, [HANDHELD TABLE1].DATEFLUSHED, [HANDHELD TABLE1].LASTFLUSHDATE, [HANDHELD TABLE1].FLUSHEDBY, [HANDHELD TABLE1].TIMEFLUSHED
FROM [HANDHELD TABLE1] LEFT JOIN [HANDHELD TABLE] ON [HANDHELD TABLE1].ASSET_ID = [HANDHELD TABLE].ASSET_ID
WHERE ((([HANDHELD TABLE].INSPECTION_FLUSH) Is Null) AND (([HANDHELD TABLE].ASSET_ID) Is Null));发布于 2016-06-15 17:28:47
从您提供的查询中可以看出,您正在将表链接到自己,以便找到检查刷新为空的字段。
然后,您的问题将加入您的关键字段"ASSSET_ID“本身,并寻找空值。这种情况永远不会发生,因为它是关键的领域。
试一试如下:
DELETE DISTINCTROW [HANDHELD TABLE_1].INSPECTION_FLUSH, [HANDHELD TABLE].*
FROM [HANDHELD TABLE] LEFT JOIN [HANDHELD TABLE] AS [HANDHELD TABLE_1] ON [HANDHELD TABLE].INSPECTION_FLUSH = [HANDHELD TABLE_1].INSPECTION_FLUSH
WHERE ((([HANDHELD TABLE_1].INSPECTION_FLUSH) Is Null));https://stackoverflow.com/questions/37837905
复制相似问题