Я ищу, чтобы найти следующую самую низкую дату, большую, чем сегодня, в заявлении select. Я упростил данные в качестве примера.SQL Server 2005 следующая самая низкая дата больше, чем сегодня
Пример данных: table_1
name order_no order_date Due_date Run_no
customer1 abc1 01/04/2015 02/05/2015 1
customer2 def2 02/04/2015 02/05/2015 2
customer3 ghi1 03/04/2015 02/05/2015 3
customer2 def3 04/04/2015 04/05/2015 2
customer2 def4 05/04/2015 05/05/2015 2
и пример запроса:
select
name,
order_no,
order_date,
Due_date,
Run_no
from
table_1
where
run_no = '2'
group by
name, order_no, Order_date, Due_date, Run_no
having
MIN(due_date) > DATEADD(day, DATEDIFF(day, 0, GETDATE()), 0)
так что если сегодня был 01/05/2015 я бы ожидать, что результат будет:
name order_no order_date Due_date Run_no
customer2 def2 02/04/2015 02/05/2015 2
но я действительно получаю:
name order_no order_date Due_date Run_no
customer2 def2 02/04/2015 02/05/2015 2
customer2 def3 04/04/2015 04/05/2015 2
customer2 def4 05/04/2015 05/05/2015 2
Это должно быть чем-то связанным с предложением, не так ли? Благодаря
Я бы предложил использовать функцию ранжирования ROW_NUMBER(). –