Имя: Пароль:
1C
1С v8
Объединение двух запросов
0 an_str
 
12.05.14
10:14
Есть 2 запроса.
1.

ВЫБРАТЬ РАЗЛИЧНЫЕ
    РабочееВремяСотрудниковОрганизации.Сотрудник.Наименование КАК ФиоСотрудник
ИЗ
    РегистрНакопления.РабочееВремяСотрудниковОрганизации КАК РабочееВремяСотрудниковОрганизации
ГДЕ
    РабочееВремяСотрудниковОрганизации.Период МЕЖДУ НАЧАЛОПЕРИОДА(ДОБАВИТЬКДАТЕ(&Период, МЕСЯЦ, -1), МЕСЯЦ) И КОНЕЦПЕРИОДА(ДОБАВИТЬКДАТЕ(&Период, МЕСЯЦ, -1), МЕСЯЦ)
УПОРЯДОЧИТЬ ПО
    ФиоСотрудник

2.
ВЫБРАТЬ
    ПериодыРаботыСотрудников.Сотрудник.Наименование КАК СотрудникНаименование
ИЗ
    РегистрСведений.ПериодыРаботыСотрудников КАК ПериодыРаботыСотрудников
        ВНУТРЕННЕЕ СОЕДИНЕНИЕ (ВЫБРАТЬ
            МАКСИМУМ(ПериодыРаботыСотрудниковСрезПоследних.Период) КАК Период,
            ПериодыРаботыСотрудниковСрезПоследних.Сотрудник КАК Сотрудник
        ИЗ
            РегистрСведений.ПериодыРаботыСотрудников.СрезПоследних(&Период, ) КАК ПериодыРаботыСотрудниковСрезПоследних
        
        СГРУППИРОВАТЬ ПО
            ПериодыРаботыСотрудниковСрезПоследних.Сотрудник) КАК ВложенныйЗапрос
        ПО ПериодыРаботыСотрудников.Период = ВложенныйЗапрос.Период
            И ПериодыРаботыСотрудников.Сотрудник = ВложенныйЗапрос.Сотрудник
ГДЕ
    ПериодыРаботыСотрудников.ПричинаИзмененияСостояния <> &ПричинаИзмененияСостояния
    И ПериодыРаботыСотрудников.ВидДоговора <> &ВидДоговора

УПОРЯДОЧИТЬ ПО
    СотрудникНаименование

Мне необходимо вывести результат в следующем виде.

ФиоИзТабеля           ФиоПоПериодам
Иванов О.В.            Иванов О.В.
Попов А.А.             Попов А.А.
Сидоров Е.Г.           ----
Тихомиров Е.И.         ----
Трофимов А.Б.          Трофимов А.Б.
----                   Фролов Е.Г.

Т.е. необходимо сопоставить результаты этих двух запросов. Как их объеднить, чтобы результат получился в нужном виде? Спасибо.
1 Kookish
 
12.05.14
10:18
Вот чую, что полное соединение надо делать, а объяснить не могу. Интуиция.
2 Господин ПЖ
 
12.05.14
10:19
Сидоров (осн.) и Сидоров (совм.) улыбаются и машут...
3 Kookish
 
12.05.14
10:22
Полное соединение ФизЛиц организации друг с другом. Включить половую и цветовую дифференциацию.
4 an_str
 
12.05.14
10:27
(1) спасибо, получилось с полным соединением.
5 an_str
 
12.05.14
10:29
Итоговый запрос:

ВЫБРАТЬ
    ПериодыРаботыСотрудников.Сотрудник.Наименование КАК СотрудникНаименование
ПОМЕСТИТЬ врТабл
ИЗ
    РегистрСведений.ПериодыРаботыСотрудников КАК ПериодыРаботыСотрудников
        ВНУТРЕННЕЕ СОЕДИНЕНИЕ (ВЫБРАТЬ
            МАКСИМУМ(ПериодыРаботыСотрудниковСрезПоследних.Период) КАК Период,
            ПериодыРаботыСотрудниковСрезПоследних.Сотрудник КАК Сотрудник
        ИЗ
            РегистрСведений.ПериодыРаботыСотрудников.СрезПоследних(&Период, ) КАК ПериодыРаботыСотрудниковСрезПоследних
        
        СГРУППИРОВАТЬ ПО
            ПериодыРаботыСотрудниковСрезПоследних.Сотрудник) КАК ВложенныйЗапрос
        ПО ПериодыРаботыСотрудников.Период = ВложенныйЗапрос.Период
            И ПериодыРаботыСотрудников.Сотрудник = ВложенныйЗапрос.Сотрудник
ГДЕ
    ПериодыРаботыСотрудников.ПричинаИзмененияСостояния <> &ПричинаИзмененияСостояния
    И ПериодыРаботыСотрудников.ВидДоговора <> &ВидДоговора
;

////////////////////////////////////////////////////////////////////////////////
ВЫБРАТЬ РАЗЛИЧНЫЕ
    РабочееВремяСотрудниковОрганизации.Сотрудник.Наименование КАК ФиоПоТабелям,
    врТабл.СотрудникНаименование КАК ФиоПоПериодам
ИЗ
    врТабл КАК врТабл
        ПОЛНОЕ СОЕДИНЕНИЕ РегистрНакопления.РабочееВремяСотрудниковОрганизации КАК РабочееВремяСотрудниковОрганизации
        ПО врТабл.СотрудникНаименование = РабочееВремяСотрудниковОрганизации.Сотрудник.Наименование
ГДЕ
    РабочееВремяСотрудниковОрганизации.Период МЕЖДУ НАЧАЛОПЕРИОДА(ДОБАВИТЬКДАТЕ(&Период, МЕСЯЦ, -1), МЕСЯЦ) И КОНЕЦПЕРИОДА(ДОБАВИТЬКДАТЕ(&Период, МЕСЯЦ, -1), МЕСЯЦ)
6 an_str
 
12.05.14
10:30
(2) ВЫБРАТЬ РАЗЛИЧНЫЕ исключит задвоение по совместителям