2011-01-04 13 views
1

私は、グリッドビューで特定の顧客のための最後の順序を表示しようとしています私がやったことは、顧客のすべての注文を示しているが、私は最後のレコード - SQL

ラストオーダーが必要ここで今私が唯一例えば「トニー」クッキー値のための最後の順序を選択することができますどのように、私のSQLコード

 SELECT orders.order_id, orders.order_date, 
    orders.payment_type, orders.cardnumber, packages.Package_name, 
orders.package_id, packages.package_price 
    FROM orders INNER JOIN packages ON orders.package_id = packages.Package_ID 
    WHERE (orders.username = @username) 

クッキーからその値を取得@Usernameのですか?実際に

答えて

1
SELECT top 1 
    orders.order_id, 
    orders.order_date, 
    orders.payment_type, 
    orders.cardnumber, 
    packages.Package_name, 
    orders.package_id, 
    packages.package_price 
FROM orders 
INNER JOIN packages ON orders.package_id = packages.Package_ID 
WHERE (orders.username = @username) 
ORDER BY orders.order_date DESC 

orders.order_idがID列であると仮定すると:

SELECT top 1 
    orders.order_id, 
    orders.order_date, 
    orders.payment_type, 
    orders.cardnumber, 
    packages.Package_name, 
    orders.package_id, 
    packages.package_price 
FROM orders 
INNER JOIN packages ON orders.package_id = packages.Package_ID 
WHERE (orders.username = @username) 
ORDER BY orders.order_id DESC 
+1

これが最初に取得します最後のものではない – Bader

+0

ええ:私は会議に出席していて、私はDESCを忘れていたことを思い出しました! –

3

一般化(と少しの修正)するにはミッチの答えは、SELECT TOPで装飾句(@N)とORDERを使用する必要がありますBY ... DESC。ないTOPストアドプロシージャへの引数として渡すと、返すことができることを意味N、たとえば、いない1が、Nラストオーダー、私はTOP(@N)を使用することに注意してください:

CREATE STORED PROCEDURE ... 
    @N int 
... 
SELECT TOP(@N) ... 
ORDER BY ... DESC 
+0

+1。私から..... –

関連する問題