Sql улучшить выбранные результаты - PullRequest
0 голосов
/ 09 ноября 2018

Привет всем. У меня небольшая проблема с попыткой получить данные из таблицы. Это выбор, который я делаю:

SELECT 
    HOS.Area_Code, 
    HOS.Year,       
    HOS.OrderNumber, 
    MAX(HOS.Id) as 'Id_Order',
    HOS.status,
    MAX(HOS.date_status) as 'date_status',
    HO.Rut, 
    HO.Name, 
    HO.Amount
FROM SDF_Historic_Order_Status as HOS inner join HeaderOrder as HO
ON  
    HOS.Area_Code = HO.Area_Code AND
    HOS.Year = HO.Year AND
    HOS.OrderNumber = HO.OrderNumber
WHERE 
    (HOS.Area_Code= 1) AND
    (HOS.Year= 2017) AND
    (HOS.OrderNumber= 7) AND
    (HOS.date_status < CONVERT(date, DATEADD(day, -2, GETDATE()))) 
GROUP BY 
    HOS.Area_Code, HOS.Year, HOS.OrderNumber, HOS.status, HO.Rut, HO.Name, HO.Amount

Возвращает 3 строки: select result

Итак, что я делаю, так это получаю причину максимального идентификатора в соответствии с текущим статусом заказа. Поскольку вы можете видеть, что Max ID имеет статус 2, есть ли способ, которым я могу улучшить свой выбор, чтобы получить только эту строку?

Я не могу поставить Max Status, потому что он вернет статус 5 и текущий статус 2.

1 Ответ

0 голосов
/ 09 ноября 2018

Вы можете использовать top и order by, если вам нужна только одна строка:

select top (1) . . .
from . . .
. . .
order by id_order desc;
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...