Как получить из отдельных дат периоды в запросе? #577702


#0 by inetguru
Товарищи, подскажите, как сделать запрос. Есть табель учета рабочего времени, есть регистр, где хранится информация о состоянии работника по табелю на каждый отдельно взятый день.  Нужно из последовательности этих дат получить периоды состояний работника. Вот пример исходных данных: Период                ВИДИСПОЛЬЗОВАНИЯРАБОЧЕГОВРЕМЕНИ 01.09.2010 0:00:00    Дни явок 02.09.2010 0:00:00    Дни явок 03.09.2010 0:00:00    Дни явок 06.09.2010 0:00:00    Нетрудоспособность 07.09.2010 0:00:00    Нетрудоспособность 08.09.2010 0:00:00    Нетрудоспособность 09.09.2010 0:00:00    Нетрудоспособность 10.09.2010 0:00:00    Нетрудоспособность 11.09.2010 0:00:00    Нетрудоспособность 12.09.2010 0:00:00    Нетрудоспособность 13.09.2010 0:00:00    Нетрудоспособность 14.09.2010 0:00:00    Нетрудоспособность 15.09.2010 0:00:00    Нетрудоспособность 16.09.2010 0:00:00    Нетрудоспособность 17.09.2010 0:00:00    Нетрудоспособность 20.09.2010 0:00:00    Дни явок 21.09.2010 0:00:00    Дни явок 22.09.2010 0:00:00    Дни явок 23.09.2010 0:00:00    Дни явок 24.09.2010 0:00:00    Дни явок 27.09.2010 0:00:00    Дни явок 28.09.2010 0:00:00    Дни явок 29.09.2010 0:00:00    Дни явок 30.09.2010 0:00:00    Дни явок В результате работы запроса нужно получить вот это: НачалоПериода    ОкончаниеПериода      ВИДИСПОЛЬЗОВАНИЯРАБОЧЕГОВРЕМЕНИ 01.09.2010 0:00:00    03.09.2010 0:00:00    Дни явок 06.09.2010 0:00:00    17.09.2010 0:00:00    Нетрудоспособность 20.09.2010 0:00:00    30.09.2010 0:00:00    Дни явок Т.е. состояние работника меняется если указано другое состояние (это касается разрыва с 25.09.10 по 26.09.10 – тут ничего не меняется, поэтому период не прерывается на 24.09.2011). Мозг на грани кипения.
#1 by Sersh
Без запроса никак?
#2 by Живой Ископаемый
#3 by inetguru
Ура!!! Спасибо за ссылку. Воспользовался данными темы и вот что получил:                    И РабочееВремяКон<span style="color: red">.</span>Сотрудник <span style="color: red">=</span> РабочееВремяК<span style="color: red">.</span>Сотрудник                    И РабочееВремяКон<span style="color: red">.</span>ВидИспользованияРабочегоВремени <span style="color: red">=</span> РабочееВремяК<span style="color: red">.</span>ВидИспользованияРабочегоВремени            ПО РабочееВремяНач<span style="color: red">.</span>Период <span style="color: red"><=</span> РабочееВремяКон<span style="color: red">.</span>Период                И РабочееВремяНач<span style="color: red">.</span>Сотрудник <span style="color: red">=</span> РабочееВремяКон<span style="color: red">.</span>Сотрудник                И РабочееВремяНач<span style="color: red">.</span>ВидИспользованияРабочегоВремени <span style="color: red">=</span> РабочееВремяКон<span style="color: red">.</span>ВидИспользованияРабочегоВремени                И РабочееВремяНач<span style="color: red">.</span>Сотрудник <span style="color: red">=</span> РабочееВремяН<span style="color: red">.</span>Сотрудник                И РабочееВремяНач<span style="color: red">.</span>ВидИспользованияРабочегоВремени <span style="color: red">=</span> РабочееВремяН<span style="color: red">.</span>ВидИспользованияРабочегоВремени    ГДЕ        РабочееВремяН<span style="color: red">.</span>Период ЕСТЬ NULL        И РабочееВремяК<span style="color: red">.</span>Период ЕСТЬ NULL        И РабочееВремяНач<span style="color: red">.</span>Сотрудник <span style="color: red">=</span> <span style="color: brown">&Сотрудник </span>        И РабочееВремяНач<span style="color: red">.</span>Период <span style="color: red">>=</span> <span style="color: brown">&НачалоПериода </span>        И РабочееВремяНач<span style="color: red">.</span>Период <span style="color: red"><=</span> <span style="color: brown">&КонецПериода </span>        И РабочееВремяКон<span style="color: red">.</span>Период <span style="color: red">>=</span> <span style="color: brown">&НачалоПериода        ПО <span style="color: red">(</span>РабочееВремя<span style="color: red">.</span>Период МЕЖДУ ВложенныйЗапрос<span style="color: red">.</span>ПериодНач И ВложенныйЗапрос<span style="color: red">.</span>ПериодКон<span style="color: red">)</span>            И ВложенныйЗапрос<span style="color: red">.</span>ВидИспользованияРабочегоВремени <span style="color: red">=</span> РабочееВремя<span style="color: red">.</span>ВидИспользованияРабочегоВремени            И ВложенныйЗапрос<span style="color: red">.</span>Сотрудник <span style="color: red">=</span> РабочееВремя<span style="color: red">.</span>Сотрудник СГРУППИРОВАТЬ ПО    ВложенныйЗапрос<span style="color: red">.</span>ПериодНач<span style="color: red">,</span>    ВложенныйЗапрос<span style="color: red">.</span>ПериодКон<span style="color: red">,</span> ИМЕЮЩИЕ    КОЛИЧЕСТВО<span style="color: red">(</span>РАЗЛИЧНЫЕ РабочееВремя<span style="color: red">.</span>Период<span style="color: red">)</span> <span style="color: red">=</span> РАЗНОСТЬДАТ<span style="color: red">(</span>ВложенныйЗапрос<span style="color: red">.</span>ПериодНач<span style="color: red">,</span> ВложенныйЗапрос<span style="color: red">.</span>ПериодКон<span style="color: red">,</span> ДЕНЬ<span style="color: red">)</span> <span style="color: red">+</span> <span style="color: black">1
#4 by inetguru
Извинюсь за предыдущий пост.Хотел фот так: &nbsp; &nbsp;&nbsp; &nbsp;РабочееВремяН[COLOR=#FF0000].[/COLOR]Период ЕСТЬ NULL &nbsp; &nbsp;&nbsp; &nbsp;И РабочееВремяК[COLOR=#FF0000].[/COLOR]Период ЕСТЬ NULL
#5 by inetguru
Блин, вот это точно оно:        РабочееВремяН.Период ЕСТЬ NULL        И РабочееВремяК.Период ЕСТЬ NULL        ПО (РабочееВремя.Период МЕЖДУ ВложенныйЗапрос.ПериодНач И ВложенныйЗапрос.ПериодКон)
Тэги: 1С 8
Ответить:
Комментарии доступны только авторизированным пользователям

В этой группе 1С