2015-03-28 7 views
2

Мое имя таблицы tblEvent и ее столбцы EventID, Name, Description, EventTypeID, TotalBudget, CustomerID, EventStatus, EventDateвыбрать последние 3 записи из базы данных SQL

Я хочу, чтобы выбрать самые последние 3 записи.

Я попытался это:

public DataTable HomeEvents() 
{ 
    string query = "select TOP 3 tblEvent.*, tblCustomer.Name as 'CustomerName', tblCustomer.Photo AS 'CustomerPhoto' from tblEvent ORDER BY EventID DESC, tblCustomer where tblEvent.CustomerID = tblCustomer.CustomerID"; 

    List<SqlParameter> lstParams = new List<SqlParameter>(); 
    DataTable dt = DBUtility.SelectData(query, lstParams); 
    return dt; 
} 

ответ

2

Предложение order by должно быть после where пункта:

select top 3 
    tblEvent.*, 
    tblCustomer.Name as 'CustomerName', 
    tblCustomer.Photo AS 'CustomerPhoto' 
from 
    tblEvent 
where 
    tblEvent.CustomerID = tblCustomer.CustomerID 
order by 
    EventID desc, 
    tblCustomer 

Примечание: Если EventID является автоинкрементных (первичный ключ, удостоверяющий личность) и записи фактически создаются в том порядке, в котором они произошли, тогда поле будет в порядке возрастания с течением времени. В противном случае вам понадобится поле EventDate для сортировки (как предложил Тарек Алофман).

0

Изменение SQL заявление, чтобы читать

... ORDER DESC BY ... 

Это будет сортировать в обратном порядке, то первые три теперь последние три.

+0

Нет, это не правильный синтаксис для 'порядка by'. – Guffa

1

Как сказал Guffa, Заказывайте приходит после того, как, где, и вам нужно «Сортировать по EVENTDATE DESC»

Смежные вопросы