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

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

создайте таблицу периодов и лефтджойнитесь с ней.
Что может быть проще?
22 май 14, 14:23    [16055186]     Ответить | Цитировать Сообщить модератору
 Re: Одинаковое количество временных промежутков  [new]
Glory
Member

Откуда:
Сообщений: 104751
chiz
Да, я сделал это. У вас есть предложения?

Читать ответы.
Особенно ответ про невозможность выбрать несуществующие данные.
Потом думать
22 май 14, 14:26    [16055213]     Ответить | Цитировать Сообщить модератору
 Re: Одинаковое количество временных промежутков  [new]
chiz
Member

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

я же написал что данные есть
22 май 14, 14:31    [16055264]     Ответить | Цитировать Сообщить модератору
 Re: Одинаковое количество временных промежутков  [new]
Glory
Member

Откуда:
Сообщений: 104751
chiz
Glory,

я же написал что данные есть

Фейспалм просто какой-то
22 май 14, 14:31    [16055275]     Ответить | Цитировать Сообщить модератору
 Re: Одинаковое количество временных промежутков  [new]
chiz
Member

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

спасибо, сейчас попробую!
22 май 14, 14:31    [16055276]     Ответить | Цитировать Сообщить модератору
 Re: Одинаковое количество временных промежутков  [new]
chiz
Member

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

в чем же состоит фейспалм?
22 май 14, 14:32    [16055283]     Ответить | Цитировать Сообщить модератору
 Re: Одинаковое количество временных промежутков  [new]
Glory
Member

Откуда:
Сообщений: 104751
chiz
Glory,

в чем же состоит фейспалм?

В том, что вы не понимаете, что нельзя выбрать несуществующие данные.
Все периоды либо должны уже существовать где-то.
Либо должны быть сгенерированы динамически.
22 май 14, 14:35    [16055308]     Ответить | Цитировать Сообщить модератору
 Re: Одинаковое количество временных промежутков  [new]
chiz
Member

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

да ладно?
22 май 14, 14:36    [16055311]     Ответить | Цитировать Сообщить модератору
 Re: Одинаковое количество временных промежутков  [new]
Glory
Member

Откуда:
Сообщений: 104751
chiz
Glory,

да ладно?

Ну так выберите мне 20 промежутков из _пустой_ таблицы
22 май 14, 14:38    [16055339]     Ответить | Цитировать Сообщить модератору
 Re: Одинаковое количество временных промежутков  [new]
chiz
Member

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

почему из пустой таблицы?
22 май 14, 14:40    [16055354]     Ответить | Цитировать Сообщить модератору
 Re: Одинаковое количество временных промежутков  [new]
Glory
Member

Откуда:
Сообщений: 104751
chiz
Glory,

почему из пустой таблицы?

Потому что вы сказали, что можете выбрать несуществующие/отсутствующие данные
Пустая таблица - это очень яркий пример отсутствия данных
22 май 14, 14:42    [16055370]     Ответить | Цитировать Сообщить модератору
 Re: Одинаковое количество временных промежутков  [new]
chiz
Member

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

я же написал что мой запрос гарантированно возвращает минимум по одной записи для каждой 1/20ой части заданного периода
22 май 14, 14:43    [16055383]     Ответить | Цитировать Сообщить модератору
 Re: Одинаковое количество временных промежутков  [new]
Glory
Member

Откуда:
Сообщений: 104751
chiz
я же написал что мой запрос гарантированно возвращает минимум по одной записи для каждой 1/20ой части заданного периода

Я вас прошу подтвердить ваше утверждение о возможности выбора несуществующих данных
Выберите из пустой таблицы 20 записей
22 май 14, 14:49    [16055456]     Ответить | Цитировать Сообщить модератору
 Re: Одинаковое количество временных промежутков  [new]
_human
Member

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

создайте пример который будет содержать все возможные случаи вашей задачи.
т.е. создать табличку, заполнить данными, запостить тут..
сформулируйте задачу. может кто-то решит ))
з.ы. группы можно получать в результате получения целой части от деления("/") на число групп..
но у вас нужно делать анализ исходных данных и потом уже принимать решения.
22 май 14, 15:03    [16055594]     Ответить | Цитировать Сообщить модератору
 Re: Одинаковое количество временных промежутков  [new]
iap
Member

Откуда: Москва
Сообщений: 47145
Надо каждой строке с датой D сопоставить номер промежутка времени между двумя датами,
равному 1/@N части всего промежутка между начальной датой @B и конечной @E?
Но это же арифметика:
1+DATEDIFF(SECOND,@B,D)/(DATEDIFF(SECOND,@B,@E)/@N)
Единственное, что бросается в глаза - D=@E получит номер @N+1.
Если это принципиально, можно и это побороть.
22 май 14, 15:50    [16056030]     Ответить | Цитировать Сообщить модератору
 Re: Одинаковое количество временных промежутков  [new]
chiz
Member

Откуда:
Сообщений: 89
iap
Надо каждой строке с датой D сопоставить номер промежутка времени между двумя датами,

Да!

iap
равному 1/@N части всего промежутка между начальной датой @B и конечной @E?

Да!

iap
Но это же арифметика:
1+DATEDIFF(SECOND,@B,D)/(DATEDIFF(SECOND,@B,@E)/@N)
Единственное, что бросается в глаза - D=@E получит номер @N+1.
Если это принципиально, можно и это побороть.


Вот тут я Вас не совсем понял...

т.е. например
Пусть:
@B= 2014-01-01 00:00:00
@E= 2014-01-01 00:01:00
@N=20
D= 2014-01-01 00:00:09

1+DATEDIFF(SECOND,@B,D)/(DATEDIFF(SECOND,@B,@E)/@N)
1+9/60/20=4 ?
22 май 14, 17:11    [16056849]     Ответить | Цитировать Сообщить модератору
 Re: Одинаковое количество временных промежутков  [new]
iap
Member

Откуда: Москва
Сообщений: 47145
chiz
iap
Надо каждой строке с датой D сопоставить номер промежутка времени между двумя датами,

Да!

iap
равному 1/@N части всего промежутка между начальной датой @B и конечной @E?

Да!

iap
Но это же арифметика:
1+DATEDIFF(SECOND,@B,D)/(DATEDIFF(SECOND,@B,@E)/@N)

Единственное, что бросается в глаза - D=@E получит номер @N+1.
Если это принципиально, можно и это побороть.


Вот тут я Вас не совсем понял...

т.е. например
Пусть:
@B= 2014-01-01 00:00:00
@E= 2014-01-01 00:01:00
@N=20
D= 2014-01-01 00:00:09

1+DATEDIFF(SECOND,@B,D)/(DATEDIFF(SECOND,@B,@E)/@N)
1+9/60/20=4 ?
А сколько должно быть?

И вот ещё что. Я написал чисто теоретически.
На реальных данных не проверял, ибо всё вроде бы просто.
Ждать готовое решение "под ключ" опрометчиво.
Вы считаете себя программистом? Так исправьте, доделайте под себя.
Отрезки времени что ли порисуйте на бумажке...
22 май 14, 17:22    [16056968]     Ответить | Цитировать Сообщить модератору
 Re: Одинаковое количество временных промежутков  [new]
chiz
Member

Откуда:
Сообщений: 89
iap
chiz
пропущено...

Да!

пропущено...

Да!

пропущено...


Вот тут я Вас не совсем понял...

т.е. например
Пусть:
@B= 2014-01-01 00:00:00
@E= 2014-01-01 00:01:00
@N=20
D= 2014-01-01 00:00:09

1+DATEDIFF(SECOND,@B,D)/(DATEDIFF(SECOND,@B,@E)/@N)
1+9/60/20=4 ?
А сколько должно быть?

И вот ещё что. Я написал чисто теоретически.
На реальных данных не проверял, ибо всё вроде бы просто.
Ждать готовое решение "под ключ" опрометчиво.
Вы считаете себя программистом? Так исправьте, доделайте под себя.
Отрезки времени что ли порисуйте на бумажке...


Да, точно. Простите. Я не внимательный...

Я полагаю что вопрос про программиста риторический?) Ха)
"я не волшебник я только учусь" ))

Сейчас буду "программировать" .)
Только далеко не уходите)
22 май 14, 17:38    [16057082]     Ответить | Цитировать Сообщить модератору
 Re: Одинаковое количество временных промежутков  [new]
chiz
Member

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

все крутяк, получилось!
Спасибо еще раз)

Получился даже наглядный пример как можно шагать по пустой таблице)

НИШТЬ!
23 май 14, 10:05    [16059609]     Ответить | Цитировать Сообщить модератору
 Re: Одинаковое количество временных промежутков  [new]
iap
Member

Откуда: Москва
Сообщений: 47145
chiz
iap,

все крутяк, получилось!
Спасибо еще раз)

Получился даже наглядный пример как можно шагать по пустой таблице)

НИШТЬ!
Но Вы же не показали в выборке ни одной записи с номером интервала, в котором ничего нет!
Так что пустые части таблицы просто пропущены.
23 май 14, 10:11    [16059635]     Ответить | Цитировать Сообщить модератору
 Re: Одинаковое количество временных промежутков  [new]
chiz
Member

Откуда:
Сообщений: 89
iap
chiz
iap,

все крутяк, получилось!
Спасибо еще раз)

Получился даже наглядный пример как можно шагать по пустой таблице)

НИШТЬ!
Но Вы же не показали в выборке ни одной записи с номером интервала, в котором ничего нет!
Так что пустые части таблицы просто пропущены.


это да, трабла. Но шагать то все равно можно)

Теперь надо придумать как показать интервалы для которых данных нет)
23 май 14, 10:13    [16059645]     Ответить | Цитировать Сообщить модератору
 Re: Одинаковое количество временных промежутков  [new]
iap
Member

Откуда: Москва
Сообщений: 47145
chiz
iap
пропущено...
Но Вы же не показали в выборке ни одной записи с номером интервала, в котором ничего нет!
Так что пустые части таблицы просто пропущены.


это да, трабла. Но шагать то все равно можно)

Теперь надо придумать как показать интервалы для которых данных нет)
Я ж вроде написал - создать таблицу границ интервалов и с ней лефтджойниться.
Что в этой фразе непонятно?
Можно не создавать таблицу, а сгенерировать производную таблицу (рекурсивное CTE, конструктор табличных значений, UNION ALL и тд. и т.п.)
23 май 14, 10:19    [16059671]     Ответить | Цитировать Сообщить модератору
 Re: Одинаковое количество временных промежутков  [new]
Зайцев Фёдор
Member

Откуда: Лужки
Сообщений: 5308
chiz
Теперь надо придумать как показать интервалы для которых данных нет)

выше об этом сказано раз 10. нету сисек - нарисуй
23 май 14, 10:19    [16059673]     Ответить | Цитировать Сообщить модератору
 Re: Одинаковое количество временных промежутков  [new]
Glory
Member

Откуда:
Сообщений: 104751
chiz
Теперь надо придумать как показать интервалы для которых данных нет)

На четверты сутки Соколиный Глаз заметил, что в сарае нет одной стены (с) анекдот
23 май 14, 10:30    [16059725]     Ответить | Цитировать Сообщить модератору
 Re: Одинаковое количество временных промежутков  [new]
chiz
Member

Откуда:
Сообщений: 89
Хмм, если бы я мог "нарисовать" сам, разве я стал бы тут писать? Вы чего какие странные?
23 май 14, 13:52    [16061308]     Ответить | Цитировать Сообщить модератору
Топик располагается на нескольких страницах: Ctrl  назад   1 [2] 3   вперед  Ctrl      все
Все форумы / Microsoft SQL Server Ответить