2016-10-24 15 views
-3

SQL Server 2012を使用していて、特定のメンバの最新の4つの注文日をOrderDate列に引き出しようとしています。私はこれをコード化する方法がわかりません。どんな助けでも大歓迎です。SQL最後の4つの日付を取得するクエリ

+2

です。 http://stackoverflow.com/help/mcve –

答えて

0

それは次のようなものでなければなりません:

select top 4 o.OrderDate 
from Members m 
inner join Orders o 
on m.ID = o.MemberID 
where <your certain members criteria> 
order by o.OrderDate desc 
+0

これはテーブル内の複数のメンバーのために動作しますか? – srl

+0

これは、テーブルの構造を推測したおおよその答えなので、これは私が言っている理由です。 –

1

日付順降順で、そして4に行数を制限し、このように:

select top 4 order_date from orders order by order_date desc 

Optimizerがあることを把握します制限があり、テーブル全体のソートを避けるためにクエリを最適化します。 order_date列が索引付けされている場合、問合せオプティマイザは索引を使用して表自体に行くことなく4つの日付を取得します。

0

私はこのようなことをしています(あなたはテーブル構造を提供していないので、これは疑似コードです)。

  1. トップ4 *注文からMEMBERID = @MemberId順序を選択TempOrdersに挿入@MemberIdそれぞれについてすべてのメンバーのIds
  2. 通過する各部材
  3. オープン・カーソルのためのトップ注文を格納するために、空のテーブルTempOrdersを作成受注日DESCで
  4. あなたの結果はあなたがあなたを助けるために使用できる任意のサンプルデータ、または実際に何かを提供していませんでしたTempOrdersテーブル
関連する問題