我正试图从一个小型员工数据库中删除一些旧记录(存档中有旧记录)。
数据库的相关表具有以下结构:
雇员{雇员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'));

10-08 07:45
查看更多