| 
    
        
     
     | 
    
    
  | 
Подскажите запрос - непрерывные интервалы дат как собрать? | ☑ | ||
|---|---|---|---|---|
| 
    0
    
        RomaH    
     naïve 
    26.03.14 
            ✎
    12:12 
 | 
         
        Есть РС РабочееВремяСотрудников
 
        Дата - ВидИспользованияВремени Надо выделить непрерывные интервалы одного вида времени типа С - ПО Т.е. таблицу вида 01/01 - Р 02/01 - Р 04/01 - Б 05/01 - Б 06/01 - Р преобразовать к виду 01/01 - 02/01 - Р 04/01 - 05/01 - Б 06/01 - 06/01 - Р как такое одним запросом?  | 
|||
| 
    1
    
        RomaH    
     naïve 
    26.03.14 
            ✎
    12:12 
 | 
         
        или СКД умеет может?     
         | 
|||
| 
    2
    
        RomaH    
     naïve 
    26.03.14 
            ✎
    12:19 
 | 
         
        соединить саму с собою по равному виду времени 
 
        и дате отличающейся на 1 день записи с NULL - крайние потом первые крайние записи соединить с последними крайними по условию дата >= и сгруппировать по минимуму ?  | 
|||
| 
    3
    
        Ненавижу 1С    
     гуру 
    26.03.14 
            ✎
    12:20 
 | 
         
        что было 03/01?     
         | 
|||
| 
    4
    
        Ненавижу 1С    
     гуру 
    26.03.14 
            ✎
    12:21 
 | 
         
        (1) это умеет даже сам запрос     
         | 
|||
| 
    5
    
        RomaH    
     naïve 
    26.03.14 
            ✎
    12:25 
 | 
         
        (3) другой вид времени не учитываемый в регистре
 
        (4) ну так я и спрашиваю - как?  | 
|||
| 
    6
    
        vmv    
     26.03.14 
            ✎
    12:41 
 | 
         
        подписался - жду гения
 
        будет готовый запрос - украду конеш  | 
|||
| 
    7
    
        RomaH    
     naïve 
    26.03.14 
            ✎
    12:46 
 | 
||||
| 
    8
    
        Ненавижу 1С    
     гуру 
    26.03.14 
            ✎
    12:48 
 | 
         
        (7) нормально, у меня примерно также:
 
        ВЫБРАТЬ ПодразделенияФизЛиц.ФизЛицо КАК ФизЛицо, ПодразделенияФизЛиц.Период КАК Период, ПодразделенияФизЛиц.Занятость КАК Занятость ПОМЕСТИТЬ НачалаПериодов ИЗ РегистрСведений.ПодразделенияФизЛиц КАК ПодразделенияФизЛиц ЛЕВОЕ СОЕДИНЕНИЕ РегистрСведений.ПодразделенияФизЛиц КАК ПодразделенияФизЛиц1 ПО ПодразделенияФизЛиц.ФизЛицо = ПодразделенияФизЛиц1.ФизЛицо И (РАЗНОСТЬДАТ(ПодразделенияФизЛиц.Период, ПодразделенияФизЛиц1.Период, ДЕНЬ) = -1) ГДЕ ПодразделенияФизЛиц.Занятость <> ЕСТЬNULL(ПодразделенияФизЛиц1.Занятость, НЕОПРЕДЕЛЕНО) ИНДЕКСИРОВАТЬ ПО ФизЛицо, Занятость, Период ; //////////////////////////////////////////////////////////////////////////////// ВЫБРАТЬ ПодразделенияФизЛиц.ФизЛицо КАК ФизЛицо, ПодразделенияФизЛиц.Период КАК Период, ПодразделенияФизЛиц.Занятость КАК Занятость ПОМЕСТИТЬ ОкончанияПериодов ИЗ РегистрСведений.ПодразделенияФизЛиц КАК ПодразделенияФизЛиц ЛЕВОЕ СОЕДИНЕНИЕ РегистрСведений.ПодразделенияФизЛиц КАК ПодразделенияФизЛиц1 ПО ПодразделенияФизЛиц.ФизЛицо = ПодразделенияФизЛиц1.ФизЛицо И (РАЗНОСТЬДАТ(ПодразделенияФизЛиц.Период, ПодразделенияФизЛиц1.Период, ДЕНЬ) = 1) ГДЕ ПодразделенияФизЛиц.Занятость <> ЕСТЬNULL(ПодразделенияФизЛиц1.Занятость, НЕОПРЕДЕЛЕНО) ИНДЕКСИРОВАТЬ ПО ФизЛицо, Занятость, Период ; //////////////////////////////////////////////////////////////////////////////// ВЫБРАТЬ НачалаПериодов.ФизЛицо КАК ФизЛицо, НачалаПериодов.Период КАК Начало, МИНИМУМ(ОкончанияПериодов.Период) КАК Окончание, НачалаПериодов.Занятость ИЗ НачалаПериодов КАК НачалаПериодов ВНУТРЕННЕЕ СОЕДИНЕНИЕ ОкончанияПериодов КАК ОкончанияПериодов ПО НачалаПериодов.ФизЛицо = ОкончанияПериодов.ФизЛицо И НачалаПериодов.Занятость = ОкончанияПериодов.Занятость И НачалаПериодов.Период <= ОкончанияПериодов.Период СГРУППИРОВАТЬ ПО НачалаПериодов.ФизЛицо, НачалаПериодов.Период, НачалаПериодов.Занятость УПОРЯДОЧИТЬ ПО ФизЛицо, Начало АВТОУПОРЯДОЧИВАНИЕ  | 
 | Форум | Правила | Описание | Объявления | Секции | Поиск | Книга знаний | Вики-миста |