我正试图从一个小型员工数据库中删除一些旧记录(存档中有旧记录)。
数据库的相关表具有以下结构:
雇员{雇员ID,家庭名称,中间名,GivenName,地址,郊区,州,
邮政编码}
费用{ExpenseNo,ManagerID,EmployeeID,LodgementDate}
EmployeeID是费用关系中的FK。提交日期的格式为MM-DD-YYYY。
编写以下内容似乎只是删除(测试)数据库中的所有记录,而不是那些早于(甚至匹配)日期的记录:
DELETE FROM employee
WHERE EXISTS
(SELECT *
FROM employee, expense
WHERE employee.employeeid= expense.employeeid
AND lodgementdate = to_date('08-01-2007', 'MM-DD-YYYY'));
我知道有一个记录有确切的提交日期,但是它仍然删除所有记录(这是测试台)。
最佳答案
从病人的条款中删除病人。
DELETE FROM patient
WHERE EXISTS
(SELECT *
FROM account
WHERE patient.patientid = account.patientid
AND treatmentdate = to_date('01-JAN-07', 'DD-MON-YY'));