2017-08-22 2 views
0

前に最後にログインした日時を見つけます。は、私は次の列で、ログイン日時を一覧表示し、日付を購入し、テーブルを持って購入

私は購入前のその人の最後のログイン日を伴うすべての購入のリストを取得したいと考えています。

customerid, purchasedatetime, lastloginbeforepurchase 

私は内部結合、クロス適用などいくつかの方法を考えましたが、良い解決策は見つかりませんでした。

+1

を挿入する ''作成...いくつかの行の[MCVE] 1行を入力してください... '。 – Yunnosch

+0

こんにちは、ようこそ。私たちはここで助けの方法で多くを提供するためにいくつかの詳細が必要です。いくつかのサンプルデータと望ましい出力は、この問題を改善するために長い道のりになります。ここから始めるのが楽しい場所です。 http://spaghettidba.com/2015/04/24/how-to-post-a-t-sql-question-on-a-public-forum/ –

答えて

1

あなたはouter applyとの最後のログインを検索できます。

select purchase.customerid 
,  purchase.[datetime] as purchasedatetime 
,  login.[datetime] as lastloginbeforepurchase 
from YourTable purchase 
outer apply 
     (
     select top 1 * 
     from YourTable login 
     where login.customerid = purchase.customerid 
       and login.[datetime] < purchase.[datetime] 
     order by 
       login.[datetime] desc 
     ) login 
関連する問題