Последняя запись заказов для конкретного клиента - SQL - PullRequest
1 голос
/ 04 января 2011

Я пытаюсь отобразить последний заказ для конкретного клиента в виде сетки. Я сделал все заказы для клиента, но мне нужен последний заказ

вот мой код 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 получает его значение из cookie, теперь, как я могу выбрать последний заказ только для значения cookie, например, "Tony"?

Ответы [ 2 ]

3 голосов
/ 04 января 2011

Чтобы обобщить (и немного исправить) ответ Митча, вам нужно использовать предложение SELECT, украшенное TOP (@N) и ORDER BY ... DESC. Обратите внимание, что я использую TOP (@N), а не TOP N, что означает, что вы можете передать его в качестве аргумента хранимой процедуре и вернуть, скажем, не 1, а N последних порядков:

CREATE STORED PROCEDURE ...
    @N int
...
SELECT TOP(@N) ...
ORDER BY ... DESC
1 голос
/ 04 января 2011
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 является столбцом Identity:

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
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...