2017-07-13 6 views
0

の要件は、現在の日付と前の日付の顧客販売記録を取得することです。誰も私はSQLを使用してデータを取得する手助けできますか?現在の日付と前の日付の顧客賢明な販売記録を取得する必要があります。

以下の表は、ソースです:

Name Order Sales date 
Ann  1  13/01/2017 
Ann  3  26/01/2017 
Ann  6  14/03/2017 
Ben  2  16/01/2017 
Ben  5  21/02/2017 
Cavin 4  15/03/2017 

ターゲットはANSI標準lag()機能を使用し

Name Order latest_sales_date previous_sales_date 
Ann  1  13/01/2017 
Ann  3  26/01/2017   13/01/2017 
Ann  6  14/03/2017   26/01/2017 
Ben  2  16/01/2017 
Ben  5  21/02/2017   16/01/2017 
Cavin 4  15/03/2017 
+0

あなたの質問には、使用しているデータベースでタグを付ける必要があります。 –

+0

単なる提案です。予約語をテーブル名や列名として使用しないでください(例: 'Name'と' Order') – JohnHC

答えて

1

ようである必要があります。Oracle、Postgresのか、SQLサーバーを使用して

select t.*, 
     lag(sales_date) over (partition by name order by sales_date) as prev_sales_date 
from t; 
1

を2012年以降:

select t1.Name, t1.Order, t1.Sales_date as latest_sale, 
     lag(t1.Sales_Date) over (partition by t1.Name order by t1.Order) as previous_sales_date 
from MyTable t1 
関連する問題