Добро пожаловать в форум, Guest  >>   Войти | Регистрация | Поиск | Правила | В избранное | Подписаться
Все форумы / Microsoft SQL Server Новый топик    Ответить
 Помогите с датами, ПОЖАЛУЙСТА  [new]
myrzilka
Member

Откуда:
Сообщений: 54
Вопрос такой.
Есть таблица

Клиент	Дата от	         Дата до
10	01.01.2018	31.01.2018
10	01.02.2018	30.03.2018
10	04.05.2018	15.06.2018


Надо получить

Клиент	Дата от	       Дата до
10	01.01.2018	30.03.2018
10	04.05.2018	15.06.2018


Т.е. если между "дата до" (первого значения) и "дата от" (второго значения) было меньше суток, то вывести "дату до" (второго значения).

Как это сделать?
Прошу прощения, если сумбурно написала.
24 сен 18, 20:57    [21684648]     Ответить | Цитировать Сообщить модератору
 Re: Помогите с датами, ПОЖАЛУЙСТА  [new]
Akina
Member

Откуда: Зеленоград, Москва, Россия
Сообщений: 20206
Обсуждалось.
24 сен 18, 21:10    [21684663]     Ответить | Цитировать Сообщить модератору
 Re: Помогите с датами, ПОЖАЛУЙСТА  [new]
myrzilka
Member

Откуда:
Сообщений: 54
прочитала все 36 тем, так и нашла совпадения((
Вроде похожее, но как применить к моему примеру, не понимаю.
Помогите, пожалуйста
24 сен 18, 21:32    [21684692]     Ответить | Цитировать Сообщить модератору
 Re: Помогите с датами, ПОЖАЛУЙСТА  [new]
Щукина Анна
Member

Откуда:
Сообщений: 1466
myrzilka
прочитала все 36 тем, так и нашла совпадения((
Вроде похожее, но как применить к моему примеру, не понимаю.
Помогите, пожалуйста
Одно из последних обсуждений данного вопроса. Только там речь шла за разницу в минуту, у вас - с сутки...
25 сен 18, 04:08    [21684861]     Ответить | Цитировать Сообщить модератору
 Re: Помогите с датами, ПОЖАЛУЙСТА  [new]
982183
Member

Откуда: VL
Сообщений: 3350
Может лучше поискать не "объединить периоды", а "предыдущая строка"
25 сен 18, 05:00    [21684874]     Ответить | Цитировать Сообщить модератору
 Re: Помогите с датами, ПОЖАЛУЙСТА  [new]
982183
Member

Откуда: VL
Сообщений: 3350
С помощью Lag() задача решается элементарно.
25 сен 18, 05:19    [21684877]     Ответить | Цитировать Сообщить модератору
 Re: Помогите с датами, ПОЖАЛУЙСТА  [new]
Akina
Member

Откуда: Зеленоград, Москва, Россия
Сообщений: 20206
982183
С помощью Lag() задача решается элементарно.
Показанная структура не запрещает наложений, в т.ч. кратных. Одним LAG() тут, боюсь, не обойтись...
25 сен 18, 07:30    [21684898]     Ответить | Цитировать Сообщить модератору
 Re: Помогите с датами, ПОЖАЛУЙСТА  [new]
982183
Member

Откуда: VL
Сообщений: 3350
При наложениях, изначальной постановки явно будет маловато.
25 сен 18, 07:44    [21684903]     Ответить | Цитировать Сообщить модератору
 Re: Помогите с датами, ПОЖАЛУЙСТА  [new]
aleks222
Member

Откуда:
Сообщений: 855
982183
С помощью Lag() задача решается элементарно.

Наивный.
Три подряд идущих периода объединишь?
25 сен 18, 08:38    [21684936]     Ответить | Цитировать Сообщить модератору
 Re: Помогите с датами, ПОЖАЛУЙСТА  [new]
982183
Member

Откуда: VL
Сообщений: 3350
В постановке не стояла задача объединения периодов.
25 сен 18, 08:46    [21684943]     Ответить | Цитировать Сообщить модератору
 Re: Помогите с датами, ПОЖАЛУЙСТА  [new]
myrzilka
Member

Откуда:
Сообщений: 54
стояла задача объединить. Только мне сравнивать надо данные из разных столбцов. А все приведенные примеры сравнивают с одним и тем же столбцом. Lag тут не подойдет.

Например, один период с 1 по 15, второй период с 16 по 19 - их надо объединить и получить один период с 1 по 19. Т.к. между ними прошлом меньше суток.

Как это сделать? Помогите, пожалуйста
25 сен 18, 09:40    [21685004]     Ответить | Цитировать Сообщить модератору
 Re: Помогите с датами, ПОЖАЛУЙСТА  [new]
TaPaK
Member

Откуда: Kiev
Сообщений: 6794
myrzilka
стояла задача объединить. Только мне сравнивать надо данные из разных столбцов. А все приведенные примеры сравнивают с одним и тем же столбцом. Lag тут не подойдет.

Например, один период с 1 по 15, второй период с 16 по 19 - их надо объединить и получить один период с 1 по 19. Т.к. между ними прошлом меньше суток.

Как это сделать? Помогите, пожалуйста

всех тошнит от этого запроса, ответ дан
21684663
25 сен 18, 09:41    [21685005]     Ответить | Цитировать Сообщить модератору
 Re: Помогите с датами, ПОЖАЛУЙСТА  [new]
Щукина Анна
Member

Откуда:
Сообщений: 1466
myrzilka
стояла задача объединить. Только мне сравнивать надо данные из разных столбцов. А все приведенные примеры сравнивают с одним и тем же столбцом. Lag тут не подойдет.

Например, один период с 1 по 15, второй период с 16 по 19 - их надо объединить и получить один период с 1 по 19. Т.к. между ними прошлом меньше суток.

Как это сделать? Помогите, пожалуйста

Вот эту темку изучите....
25 сен 18, 09:54    [21685020]     Ответить | Цитировать Сообщить модератору
 Re: Помогите с датами, ПОЖАЛУЙСТА  [new]
Щукина Анна
Member

Откуда:
Сообщений: 1466
при грамотном применении решение работает и с касаниями, и с пересечениями, и с полными включениями одного диапазона в другой
25 сен 18, 09:57    [21685024]     Ответить | Цитировать Сообщить модератору
 Re: Помогите с датами, ПОЖАЛУЙСТА  [new]
982183
Member

Откуда: VL
Сообщений: 3350
myrzilka
Например, один период с 1 по 15, второй период с 16 по 19 - их надо объединить и получить один период с 1 по 19. Т.к. между ними прошлом меньше суток.

Именно это делается Lag-ом
Если нет вариантов пересечения периодов (1-15 и 10-19)
25 сен 18, 11:13    [21685135]     Ответить | Цитировать Сообщить модератору
 Re: Помогите с датами, ПОЖАЛУЙСТА  [new]
myrzilka
Member

Откуда:
Сообщений: 54
982183,

Спасибо! Вроде разобралась...
25 сен 18, 16:46    [21685710]     Ответить | Цитировать Сообщить модератору
 Re: Помогите с датами, ПОЖАЛУЙСТА  [new]
982183
Member

Откуда: VL
Сообщений: 3350
Щукина Анна
при грамотном применении решение работает и с касаниями, и с пересечениями, и с полными включениями одного диапазона в другой

Оно конечно верно, но зачем человека ставить перед выбором морепродуктов, когда кроме карасей он ничего не видел.
Мало того, непонятно то ли рыба ему нужна, то ли мясо.
Не лучше ли дать удочку, и пусть сам сортирует улов.
26 сен 18, 03:04    [21686134]     Ответить | Цитировать Сообщить модератору
 Re: Помогите с датами, ПОЖАЛУЙСТА  [new]
Щукина Анна
Member

Откуда:
Сообщений: 1466
982183
Оно конечно верно, но зачем человека ставить перед выбором морепродуктов, когда кроме карасей он ничего не видел.
Мало того, непонятно то ли рыба ему нужна, то ли мясо.
Не лучше ли дать удочку, и пусть сам сортирует улов.
вы сами себе противоречите. если человеку нужно мясо - на кой ляд ему ваша удочка?
более того, дать удочку безрукому калеке - так себе помощь несчастному инвалиду.
тут только разжеванная кашица прямо в рот. и обязательно проследить, чтобы он ею не подавился...
26 сен 18, 04:22    [21686140]     Ответить | Цитировать Сообщить модератору
 Re: Помогите с датами, ПОЖАЛУЙСТА  [new]
982183
Member

Откуда: VL
Сообщений: 3350
Щукина Анна
если человеку нужно мясо - на кой ляд ему ваша удочка?

САМ выловив рыбу, человек её попробует (а не будет отмахиваться) и осознает что требуется нечто другое.
Придется искать дробовик.

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

Ну не настолько тут всё так плохо.
Руки видимо всё же есть, вот только не тренированные.
Мышцы атрофированы. Требуется тренировка.
На кошечках.
26 сен 18, 04:28    [21686141]     Ответить | Цитировать Сообщить модератору
Все форумы / Microsoft SQL Server Ответить