SQLを書いて、総注文単位が以前の注文よりも一貫して少ない顧客のリストを取得しようとしています。合計数量と同様にn番目の順になど注文が前の注文よりも少ない顧客のリストを取得するためのクエリ
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);
テーブル作成および移入し、第n-1の順に合計数量未満であると、 LOOPはOrder_idのシリアル番号に基づいています。いったんループすると、order_idに対応するproduct_idと量Qを選択する必要があります。次に、同じorder_idにQより小さい他の数量Q1があるかどうかを確認します。そうであれば、customer_idを印刷します。 そうでない場合、order_idは次のorder_idに移動します。
数量列をチェックして他の数量があるかどうかを確認する部分を実装する方法がわからないQ1 < Q for order_id?
あなたはORDER_DATEに基づいて、各CUSTOMER_IDごとrow_numbersを計算する必要があります
どのように出力は次のようになりますか? –
OUTPUTが顧客リストになります。 C1 C4 C1の場合は前回の注文(7 <10)以下の注文があるため – user1940212
お客様の最後と2番目の最後の注文のみを見たいですか?または、以前の注文よりも少なかった注文があった顧客を一般的に探していますか? (後者は簡単な 'EXISTS'節で実現できます) –