Добро пожаловать в форум, Guest  >>   Войти | Регистрация | Поиск | Правила | В избранное | Подписаться
Все форумы / Microsoft SQL Server Новый топик    Ответить
 Вычислить интервал времени исходя из двух таблиц  [new]
macaqueee
Member

Откуда:
Сообщений: 9
Существует две таблицы:

Table 1: Table 2:

01:00 01:30
02:00 05:30
03:00 07:15
04:00
05:00
06:00
07:00
08:00

Результатом этих таблиц должна быть таблица с одной ячейкой, в которой находится интервал времени:

X=(01:30-01:00)+(05:30-05:00)+(07:15-07:00).

PS. Кто не понял, напишу словами. Найти в таблице 1 ближайшее время к ячейке таблицы 2, вычесть это время из ячейки таблицы 2, и суммировать все такие интервалы.

Заранее спасибо. Еще одно ЗЫ, я бревно в SQL :(
17 сен 14, 16:42    [16586626]     Ответить | Цитировать Сообщить модератору
 Re: Вычислить интервал времени исходя из двух таблиц  [new]
macaqueee
Member

Откуда:
Сообщений: 9
Дополнение: найти ближайшее прошедшую дату.
17 сен 14, 16:43    [16586630]     Ответить | Цитировать Сообщить модератору
 Re: Вычислить интервал времени исходя из двух таблиц  [new]
StarikNavy
Member

Откуда: Москва
Сообщений: 2415
macaqueee,

задача построить забор из досок,
дополнение: кирпичи брать красные

https://www.sql.ru/forum/127456/rekomendacii-po-oformleniu-soobshheniy-v-forume
17 сен 14, 17:03    [16586754]     Ответить | Цитировать Сообщить модератору
 Re: Вычислить интервал времени исходя из двух таблиц  [new]
macaqueee
Member

Откуда:
Сообщений: 9
PS. Кто не понял, напишу словами. Найти в таблице 1 ближайшее прошедшее время к ячейке таблицы 2, вычесть это время из ячейки таблицы 2, и суммировать все такие интервалы.
17 сен 14, 18:16    [16587131]     Ответить | Цитировать Сообщить модератору
 Re: Вычислить интервал времени исходя из двух таблиц  [new]
Гавриленко Сергей Алексеевич
Member

Откуда:
Сообщений: 37254
macaqueee
PS. Кто не понял, напишу словами. Найти в таблице 1 ближайшее прошедшее время к ячейке таблицы 2, вычесть это время из ячейки таблицы 2, и суммировать все такие интервалы.
Модератор: Кто не поня, напишу словами: надо открыть приведенную ссылку на рекомендации, ознакомиться с написанным там и выполнить п.4 и п.6.


Сообщение было отредактировано: 17 сен 14, 19:23
17 сен 14, 19:23    [16587430]     Ответить | Цитировать Сообщить модератору
 Re: Вычислить интервал времени исходя из двух таблиц  [new]
macaqueee
Member

Откуда:
Сообщений: 9
Microsoft SQL Server 2008 R2 (RTM) - 10.50.1600.1 (X64) Apr 2 2010 15:48:46 Copyright (c) Microsoft Corporation Enterprise Edition (64-bit) on Windows NT 6.1 <X64> (Build 7601: Service Pack 1)

Слепив формулировку в кучу всего, что я написал:

Иллюстрацию видно в посте номер 1.
Необходимо получить таблицу с одной единственной ячейкой со значением Х в ней,
где X=(01:30-01:00)+(05:30-05:00)+(07:15-07:00).
То есть берем первое значение из таблицы 2, ищем минимальную прошедшую дату относительно этого значения и находим разницу между ними. И так далее по всей таблицы номер 2. Сравниваем значения, находим разницу дат, суммируем в один интервал.
Таблицы заполнены вручную.
18 сен 14, 10:45    [16589013]     Ответить | Цитировать Сообщить модератору
 Re: Вычислить интервал времени исходя из двух таблиц  [new]
Glory
Member

Откуда:
Сообщений: 104751
macaqueee
То есть берем первое значение из таблицы 2, ищем минимальную прошедшую дату относительно этого значения и находим разницу между ними. И так далее по всей таблицы номер 2. Сравниваем значения, находим разницу дат, суммируем в один интервал.
Таблицы заполнены вручную.

Ну так что вам мешает взять и написать запрос, который " берет первое значение из таблицы 2, ищет минимальную прошедшую дату относительно этого значения и находит разницу между ними. " ?
18 сен 14, 10:47    [16589032]     Ответить | Цитировать Сообщить модератору
 Re: Вычислить интервал времени исходя из двух таблиц  [new]
Ivan Durak
Member

Откуда: Minsk!!!
Сообщений: 3754
select datediff(ss,t1.time - max(t2.time)) as X
from t2
left join t1 on t1.time < t2.time
group by t1.time
18 сен 14, 11:15    [16589195]     Ответить | Цитировать Сообщить модератору
 Re: Вычислить интервал времени исходя из двух таблиц  [new]
Добрый Э - Эх
Guest
macaqueee,

lead/lag если версия сервера позволяет.
18 сен 14, 11:52    [16589477]     Ответить | Цитировать Сообщить модератору
 Re: Вычислить интервал времени исходя из двух таблиц  [new]
Добрый Э - Эх
Guest
macaqueee
Microsoft SQL Server 2008 R2 (RTM)
lead/lag отпадают. Остается селф-джойн по предварительно нумерованному через row_number СТЕ
18 сен 14, 11:54    [16589500]     Ответить | Цитировать Сообщить модератору
Все форумы / Microsoft SQL Server Ответить