powered by simpleCommunicator - 2.0.60     © 2026 Programmizd 02
Целевая тема:
Создать новую тему:
Автор:
Закрыть
Цитировать
Форумы / Microsoft SQL Server [игнор отключен] [закрыт для гостей] / Запрос на поиск ближайшего значения к указанной дате
5 сообщений из 5, страница 1 из 1
Запрос на поиск ближайшего значения к указанной дате
    #39743417
ret5
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Прошу помочь с запросом. Пишу первый раз на форум, возможно получилось сумбурно, если что поправьте
У каждой задачи есть
дата начала, окончания задачи (start_date, stop_date)
исполнитель (executor)
трудоемкость(value)
дата ввода значения трудоемкости (create_value)
в реальности параметров задачи оч много, собранных из разных таблиц
select..
from
left join (select..
from)
....
left join(select..
from)
where create_value between @start_period ans @stop_period
результат запроса:
NumbeTask_namestart_taskend_taskexecutervaluecreate_value prevfactrez123 test101.07.201801.09.2018 executer 10123 test1 01.07.201801.09.2018executer1 1012.07.2018 00123 test1 01.07.2018 01.09.2018 executer1 15 24.07.2018 1001234 test2 10.07.2018 05.08.2018 executer2 40 20.07.2018 001234 test2 10.07.2018 05.08.2018 executer2 50 04.08.2018 40012345 test3 28.07.2018 01.09.2018 executer3 20 23.08.201800123456test4 1.08.2018. 10.08.2018 executer4 30 05.08.2018 200123456 test4 1.08.2018 10.08.2018 executer4 35 09.08.2018 00
группирую, получаю по каждой задаче одну строку
group by task_number,task_name
order by task_number
использовала функцию LAG (cтолбец prevfact), но т.к. ограничиваю задачи определенным периодом времени, у первого введенного значения prevfact=0
В итоге по каждой задаче надо получить 1 строку, rez
1.для каждой задачи, которые начались в предыдущем периоде (type_task1, type_task2) найти разницу (rez) между ближайшем значением (максимальным) к stop period
и ближайшим значением (максимальным), введенным до start period, тем самым необходимо найти затраченную трудоемкость в заданном периоде.
2. для задач типа, которые начались в текущем периоде найти максимальное введенное значение max (value)
...
Рейтинг: 0 / 0
Запрос на поиск ближайшего значения к указанной дате
    #39743544
Владислав Колосов
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
ret5,

я бы начал решение с формулировки требования, например, найти все значения ключей таблицы такой-то, для которых дистанция между датами такой-то группы не превышает такой-то порог или минимальна.

Составив требование и убедившись, что оно внутренне непротиворечиво, можно подумать - какими средствами его можно реализовать. пока что требование у Вас не слишком очевидно, Вы описываете только своё решение.
...
Рейтинг: 0 / 0
Запрос на поиск ближайшего значения к указанной дате
    #39743574
iiyama
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
ret5,
Не знаю правильно ли я понял, у вас value -это накопительный итог и для того, чтобы рассчитать нужное значение Вам нужны данные, которые вы исключили критерием в where
Если это так, то можно использовать OUTER APPLY в котором получить нужное Вам значение и вычесть его из MAX в Вашей выборке или же убрать критерий WHERE и получать значения в агрегатах через CASE, типа
MAX(CASE WHEN create_value<@start_period THEN value else 0 end) и MAX(CASE WHEN create_value<@end_period THEN value else 0 end)
...
Рейтинг: 0 / 0
Запрос на поиск ближайшего значения к указанной дате
    #39743601
Фотография a_voronin
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
ret5,

Изучите OUTER APPLY
...
Рейтинг: 0 / 0
Запрос на поиск ближайшего значения к указанной дате
    #39750393
Igor.Ko
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
ret5,
используйте оконные функции LEAD([x]) OVER(PARTITION BY ORDER BY)
...
Рейтинг: 0 / 0
5 сообщений из 5, страница 1 из 1
Форумы / Microsoft SQL Server [игнор отключен] [закрыт для гостей] / Запрос на поиск ближайшего значения к указанной дате
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


Просмотр
0 / 0
Close
Debug Console [Select Text]