2

列出所有已租用但超过 3 年未归还的工具。删除那些工具

我有一个包含几个表的数据库。其中一些RENTAL_ORDERLINESTOCK_TOOLCATALOGUE

RENTAL_ORDERLINE具有租入和租出工具的日期,并通过foreign key.

库存工具通过外键链接到目录(其中包含 Tool_Name)。
我想创建一个数据清理脚本,列出所有已租用但超过 3 年未归还的工具并删除这些工具。我做了一个选择语句,输出要删除的工具,但不能在其中使用删除语句:

select rental_orderline.tool_id, catalogue.tool_name
from rental_orderline right outer join stock_tool
on stock_tool.tool_id = rental_orderline.tool_id
right outer join catalogue
on catalogue.catalogue_number = stock_tool.catalogue_number
where rental_orderline.date_out < add_months(sysdate, -36)
and rental_orderline.date_in is null;)
where rental_orderline.date_out < add_months(sysdate, -36)
and rental_orderline.date_in is null;

TOOL_ID TOOL_NAME

7 槌
8 钻
9 锯

我需要删除同一查询中的输出

delete from stock_tool 
where tool_id = 7, 8, 9;

有任何想法吗?

4

1 回答 1

0

就像是

delete from stock_tool where tool_id IN (
    select rental_orderline.tool_id
    from rental_orderline right outer join stock_tool
    on stock_tool.tool_id = rental_orderline.tool_id
    right outer join catalogue
    on catalogue.catalogue_number = stock_tool.catalogue_number
    where rental_orderline.date_out < add_months(sysdate, -36)
    and rental_orderline.date_in is null;)
    where rental_orderline.date_out < add_months(sysdate, -36)
    and rental_orderline.date_in is null
);

?

于 2012-11-28T17:25:33.957 回答