|
Преобразовать таблицу в запросе | ☑ | ||
---|---|---|---|---|
0
Pershin Sergei88
21.12.17
✎
08:45
|
Коллеги помогите построить запрос, если конечно это вообще возможно реализовать в запросе.
Изначальная таблица: Период ПериодЗавершения Состояние 05.01.2017 10.01.2017 Нет 11.01.2017 20.01.2017 Да 13.01.2017 Да 02.02.2017 10.02.2017 Да 12.02.2017 Да 18.02.2017 Нет Необходимо привести к такому виду: Период ПериодЗавершения Состояние 05.01.2017 10.01.2017 Нет 11.01.2017 20.01.2017 Да 21.01.2017 01.02.2017 нет 02.02.2017 10.02.2017 да 11.02.2017 11.02.2017 нет 12.02.2017 17.02.2017 Да 18.02.2017 нет |
|||
1
regniws
21.12.17
✎
08:46
|
IQ тест - найди закономерность?
|
|||
2
Pershin Sergei88
21.12.17
✎
08:47
|
Период ПериодЗавершения Состояние
05.01.2017 10.01.2017 Нет 11.01.2017 20.01.2017 Да 13.01.2017 Да 02.02.2017 10.02.2017 Да 12.02.2017 Да 18.02.2017 Нет Необходимо привести к такому виду: Период ПериодЗавершения Состояние 05.01.2017 10.01.2017 Нет 11.01.2017 20.01.2017 Да 21.01.2017 01.02.2017 нет 02.02.2017 10.02.2017 да 11.02.2017 11.02.2017 нет 12.02.2017 17.02.2017 Да 18.02.2017 нет |
|||
3
Pershin Sergei88
21.12.17
✎
08:51
|
Изначальная таблица:
Период ПериодЗавершения Состояние 05.01.2017 10.01.2017 Нет 11.01.2017 20.01.2017 Да 13.01.2017 хххххххххх Да 02.02.2017 10.02.2017 Да 12.02.2017 хххххххххх Да 18.02.2017 хххххххххх Нет Необходимо привести к такому виду: Период ПериодЗавершения Состояние 05.01.2017 10.01.2017 Нет 11.01.2017 20.01.2017 Да 21.01.2017 01.02.2017 нет 02.02.2017 10.02.2017 да 11.02.2017 11.02.2017 нет 12.02.2017 17.02.2017 Да 18.02.2017 хххххххххх нет Где хххххххххх - пустая дата |
|||
4
regniws
21.12.17
✎
08:55
|
А куда делась
13.01.2017 хххххххххх Да |
|||
5
regniws
21.12.17
✎
08:56
|
И почему появилась
21.01.2017 01.02.2017 нет Может проще описать задачу? |
|||
6
VladZ
21.12.17
✎
08:59
|
Мое мнение: изначально задача поставлена криво. Задача в (0) - это "выпрямление изначально кривой задачи".
|
|||
7
Pershin Sergei88
21.12.17
✎
09:00
|
вот в консоли накидал исходную таблицу
ВЫБРАТЬ ДАТАВРЕМЯ(2017, 1, 5, 0, 0, 0) КАК Начало, ДАТАВРЕМЯ(2017, 1, 10, 0, 0, 0) КАК конец, ЛОЖЬ КАК Статус ПОМЕСТИТЬ ВТ ОБЪЕДИНИТЬ ВСЕ ВЫБРАТЬ ДАТАВРЕМЯ(2017, 1, 11, 0, 0, 0), ДАТАВРЕМЯ(2017, 1, 20, 0, 0, 0), ИСТИНА ОБЪЕДИНИТЬ ВСЕ ВЫБРАТЬ ДАТАВРЕМЯ(2017, 1, 13, 0, 0, 0), ДАТАВРЕМЯ(1, 1, 1, 0, 0, 0), ИСТИНА ОБЪЕДИНИТЬ ВСЕ ВЫБРАТЬ ДАТАВРЕМЯ(2017, 2, 2, 0, 0, 0), ДАТАВРЕМЯ(2017, 2, 10, 0, 0, 0), ИСТИНА ОБЪЕДИНИТЬ ВСЕ ВЫБРАТЬ ДАТАВРЕМЯ(2017, 2, 12, 0, 0, 0), ДАТАВРЕМЯ(1, 1, 1, 0, 0, 0), ИСТИНА ОБЪЕДИНИТЬ ВСЕ ВЫБРАТЬ ДАТАВРЕМЯ(2017, 2, 18, 0, 0, 0), ДАТАВРЕМЯ(1, 1, 1, 0, 0, 0), ЛОЖЬ ; //////////////////////////////////////////////////////////////////////////////// ВЫБРАТЬ ВТ.Начало, ВТ.конец, ВТ.Статус ИЗ ВТ КАК ВТ |
|||
8
Pershin Sergei88
21.12.17
✎
09:02
|
(4)
А куда делась 13.01.2017 хххххххххх Да Она попала в период 11.01.2017 20.01.2017 Да т.к. там тоже состояние ДА |
|||
9
VladZ
21.12.17
✎
09:04
|
По сути - это периодический регистр сведений. Регистр содержит состояние (Да, нет).
Нужно организовать запись в этот регистр. Период завершения в этом случае не нужен. Он будет равен следующей дате изменения статуса. |
|||
10
VladZ
21.12.17
✎
09:05
|
Запрос в этом случае будет такой:
Выбрать * из МойНовыйРегистр. |
|||
11
Pershin Sergei88
21.12.17
✎
09:05
|
(5) И почему появилась
21.01.2017 01.02.2017 нет потому что вся таблица по сути это один интервал (например год), но не все периоды попадают в изначальную таблицу, поэтому их нужно добавить с статусом ложь, чтоб на выходе была таблица без пропусков вообще, т.е. все периоды имели статусы |
|||
12
ПегийЛунь
21.12.17
✎
09:10
|
Сформировать запрос в который добавить строку
ДОБАВИТЬКДАТЕ(КакойТоРегистр.ПериодНачала, ДЕНЬ, -1) КАК ДатаСледЗаписиМинус1 |
|||
13
Pershin Sergei88
21.12.17
✎
09:10
|
(9) Сейчас опишу полную задачу, чтоб было понятнее откуда берется изначальная таблица и почему есть потребность превратить ее в желаемый вид.
|
|||
14
Радим1987
21.12.17
✎
09:18
|
||||
15
VladZ
21.12.17
✎
10:16
|
(13) С этого и нужно было начинать.
|
Форум | Правила | Описание | Объявления | Секции | Поиск | Книга знаний | Вики-миста |