Добрый день.
Кто может помочь с запросом, а то у самого не настолько много опыта.
Есть исходная информация, таблица:
Период Ребенок Актуальность
01.06.2015 0:00:00 Иванов Да
02.06.2015 0:00:00 Иванов Нет
10.06.2015 0:00:00 Иванов Да
Нужно получить, таблицу:
НачалоПериода КонецПериода Ребенок Актуальность
01.06.2015 0:00:00 02.06.2015 23:59:59 Иванов Да
10.06.2015 0:00:00 30.06.2015 23:59:59 Иванов Да
Кто может помочь с запросом, а то у самого не настолько много опыта.
Есть исходная информация, таблица:
Период Ребенок Актуальность
01.06.2015 0:00:00 Иванов Да
02.06.2015 0:00:00 Иванов Нет
10.06.2015 0:00:00 Иванов Да
Нужно получить, таблицу:
НачалоПериода КонецПериода Ребенок Актуальность
01.06.2015 0:00:00 02.06.2015 23:59:59 Иванов Да
10.06.2015 0:00:00 30.06.2015 23:59:59 Иванов Да
По теме из базы знаний
- [ОБУЧАЛОВКА] Как перестать парить себе мозги и не фанить тюльку...
- Что за БРЕД этот ваш ДЗЕН? Отвечаем на вопрос, показываем типовые ошибки
- Корпоративный мозг на 1С и Python
- Счастье. Немного практики в философском вопросе
- Деловая переписка. Как выедать мозг чайной ложечкой через письма и получать нужный результат
Ответы
Подписаться на ответы
Инфостарт бот
Сортировка:
Древо развёрнутое
Свернуть все
Примерно похожая структура была в регистре,
Период Инфобаза Доступность.
Разбил на нужные периоды вот таким запросом:
Период Инфобаза Доступность.
Разбил на нужные периоды вот таким запросом:
"ВЫБРАТЬ
| РСведений.ИнформационнаяБаза,
| РСведений.Период КАК Дата,
| РСведений.Доступность
|ПОМЕСТИТЬ Ч
|ИЗ
| РегистрСведений.ДоступностьИнформационныхБаз КАК РСведений
|;
|
|//////////////////////////////////////////////////////////// ////////////////////
|ВЫБРАТЬ
| Ч.ИнформационнаяБаза,
| Ч.Дата КАК ДатаНачала,
| МИНИМУМ(Ч1.Дата) КАК ДатаОкончания
|ИЗ
| Ч КАК Ч
| ЛЕВОЕ СОЕДИНЕНИЕ Ч КАК Ч1
| ПО Ч.ИнформационнаяБаза = Ч1.ИнформационнаяБаза
| И Ч.Дата < Ч1.Дата
|ГДЕ
| Ч.Доступность = 0
| И Ч1.Доступность = 1
| И Ч.Дата > &ДатаОграничения
|
|СГРУППИРОВАТЬ ПО
| Ч.Дата,
| Ч.ИнформационнаяБаза,
| Ч.Доступность,
| Ч1.Доступность
|
|УПОРЯДОЧИТЬ ПО
| ДатаНачала";
Запрос.УстановитьПараметр("ДатаОграничения", ДобавитьМесяц(ТекущаяДата(), -1));
ТЗ.Загрузить(Запрос.Выполнить().Выгрузить());
Показать
Как-то так (навскидку):
* &ТекущаяДата = 30.06.2015
ВЫБРАТЬ
ДАТАВРЕМЯ(2015, 6, 1) КАК Период,
"Иванов" КАК Ребенок,
ИСТИНА КАК Актуальность
ПОМЕСТИТЬ ВТИсходнаяТаблица
ОБЪЕДИНИТЬ
ВЫБРАТЬ
ДАТАВРЕМЯ(2015, 6, 2),
"Иванов",
ЛОЖЬ
ОБЪЕДИНИТЬ
ВЫБРАТЬ
ДАТАВРЕМЯ(2015, 6, 10),
"Иванов",
ИСТИНА
;
//////////////////////////////////////////////////////////// ////////////////////
ВЫБРАТЬ
Т1.Период КАК НачалоПериода,
МИНИМУМ(ЕСТЬNULL(Т2.Период, &ТекущаяДата)) КАК КонецПериода,
Т1.Ребенок,
Т1.Актуальность
ПОМЕСТИТЬ ВТТаблицаПоПериодам
ИЗ
ВТИсходнаяТаблица КАК Т1
ЛЕВОЕ СОЕДИНЕНИЕ ВТИсходнаяТаблица КАК Т2
ПО (Т2.Ребенок = Т1.Ребенок)
И (Т2.Период > Т1.Период)
И (Т2.Актуальность <> Т1.Актуальность)
СГРУППИРОВАТЬ ПО
Т1.Период,
Т1.Ребенок,
Т1.Актуальность
;
//////////////////////////////////////////////////////////// ////////////////////
ВЫБРАТЬ
МИНИМУМ(ВТТаблицаПоПериодам.НачалоПериода) КАК НачалоПериода,
ВТТаблицаПоПериодам.КонецПериода,
ВТТаблицаПоПериодам.Ребенок,
ВТТаблицаПоПериодам.Актуальность
ИЗ
ВТТаблицаПоПериодам КАК ВТТаблицаПоПериодам
СГРУППИРОВАТЬ ПО
ВТТаблицаПоПериодам.КонецПериода,
ВТТаблицаПоПериодам.Ребенок,
ВТТаблицаПоПериодам.Актуальность
УПОРЯДОЧИТЬ ПО
НачалоПериода
Показать* &ТекущаяДата = 30.06.2015
Для получения уведомлений об ответах подключите телеграм бот:
Инфостарт бот