【发布时间】:2016-10-12 23:31:54
【问题描述】:
我正在尝试编写一个 sql 来获取总订购量始终小于前一个订单的客户列表。如第 n 阶总数量小于 n-1 阶总数量等
用于创建和填充表的 SQL
create table orders (order_id int, customer_id varchar(5), order_date date, product_id varchar(5), quantity int);
Insert into orders values(01,'C1','2000-01-01','P1',10);
Insert into orders values(02,'C2','2002-01-01','P2',15);
Insert into orders values(03,'C3','2002-04-01','P3',17);
Insert into orders values(04,'C4','2003-04-01','P1',20);
Insert into orders values(05,'C4','2006-01-01','P2',1);
Insert into orders values(06,'C1','2006-05-01','P5',7);
我假设我需要根据 Order_id 序列号编写一个过程和 LOOP。一旦进入循环,我需要选择与 order_id 对应的 product_id 和数量 Q。然后检查对于相同的 order_id 是否有任何其他数量 Q1 小于 Q。如果是,那么我打印 customer_id。 如果不是,则 order_id 移动到下一个 order_id。
我不知道如何实现我检查数量列以检查是否有任何其他数量Q1
请澄清
【问题讨论】:
-
输出应该是什么样子的?
-
OUTPUT 将是客户列表。 C1 C4 由于这两个客户的订单都少于 C1 之前的订单 (7
-
您只想查看客户的最后一个订单和倒数第二个订单吗?还是您通常在寻找在某个时间的订单少于之前的订单的客户? (后者可以通过一个简单的
EXISTS子句来实现。)
标签: mysql sql database stored-procedures data-warehouse