创建一个名为 sp_del_inactive_cust 的存储过程来删除没有订单的客户。存储过程应删除 1 行。
这是我正在使用的数据库。
(来源:bcitwebdev.com)
我的直接想法是我需要对照订单表检查客户表。如果客户存在于客户表中但不存在于订单表中,这一定意味着他们没有在其客户 ID 下创建任何订单 ID。然后,如果客户没有任何订单,我必须删除他们。
我不确定如何编写这个问题的脚本。我需要帮助!请保持简单,因为我是第一学期的学生。
这是我尝试过的开始:
CREATE PROCEDURE sp_del_inactive_cust
AS
SELECT customers.customer_id,
orders.customer_id
FROM customers
INNER JOIN orders ON customers.customer_id=orders.customer_id
WHERE /* customer_id is found in customers table but not in orders table */
然后我将执行该程序。
感谢 Michael Fredrickson 的帮助,这个问题得到了解答。
以下是删除所需 1 行的最终语句:
CREATE PROCEDURE sp_del_inactive_cust
AS
DELETE customers
FROM customers
LEFT OUTER JOIN orders ON customers.customer_id = orders.customer_id
WHERE orders.customer_id IS NULL;
GO
EXECUTE sp_del_inactive_cust;
GO