【发布时间】:2019-08-09 03:42:16
【问题描述】:
我需要了解如何根据子查询删除记录。
我尝试了很多东西并在这里搜索以免重复问题,但找不到答案。
这是子查询:
SELECT TOP (100) PERCENT t.id_col, t.dept_no, t.unit, t.lease_star
FROM trans AS t FULL OUTER JOIN
temp_lease AS l ON t.dept_no = l.dept_no AND t.unit = l.unit AND t.lease_star = l.lease_start_date
WHERE (l.dept_no IS NULL)
ORDER BY t.dept_no, t.unit, t.lease_star
子查询在 trans 文件中查找不具有 dept_no、unit 和 Lease_start_date 的匹配组合的记录(这两个文件的最后一个字段具有不同的名称,因为 VFP 将字段名称截断为 10 - 并且它们升迁了VFP 文件)。
找到这些记录(确实如此)后,我希望能够删除 temp_lease 表中没有三重匹配的记录。
首先,我想使用 SELECT 而不是 DELETE,因为我总是学会在确定代码正确后才使用 DELETE。
谁能帮我解决这个问题?我已经尝试了所有变体,似乎没有任何效果。
【问题讨论】:
-
WITH list as (SELECT TOP (100) PERCENT....) DELETE FROM table WHERE ID IN (SELECT ID FROM list)