Я хочу выбрать последние записи из БД в SQL Server. Если только один пункт выбран окончательный вывод таков:SELECT TOP с несколькими UNION и с ORDER BY
SELECT TOP(10) * from dbo.Eventos WHERE Tipo LIKE '%OS%' AND Distrito LIKE '%'
+ всегда добавляется в конце:
ORDER BY Data DESC
ПРИМЕЧАНИЕ: Distrito LIKE '%'
должен остаться, как это иногда программно изменено на что-то кроме %
.
Если имеется больше элементов, запрос получает один UNION
линия добавлена программно для каждого элемента. В конце, как всегда, добавляется ORDER BY
. Пример со всеми 4 товаров проверен:
SELECT TOP(10) * from dbo.Eventos WHERE Tipo LIKE '%OS%' AND Distrito LIKE '%'
UNION ALL SELECT TOP(10) * from dbo.Eventos WHERE Tipo LIKE '%Rad%' AND Distrito LIKE '%'
UNION ALL SELECT TOP(10) * from dbo.Eventos WHERE Tipo LIKE '%Aci%' AND Distrito LIKE '%'
UNION ALL SELECT TOP(10) * from dbo.Eventos WHERE Tipo LIKE '%Out%' AND Distrito LIKE '%'
ORDER BY Data DESC
Но это дает мне 10 самому старые результаты для каждого WHERE
пункта отсортированных BY Data DESC
.
Как я могу получить NEWEST X результатов по каждому товару (WHERE
)?
Это действительно похоже на SQL-сервер, а не на mySQL. Вы уверены, что ваш тег правильный? – xQbert