Имя: Пароль:
1C
1С v8
Помогите разобраться с запросом
0 s-n-a-y
 
25.03.14
16:25
Есть запрос. В нем, Как мне сказали, выбирается последняя по периоду должность сотрудника.

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

СГРУППИРОВАТЬ ПО
    РаботникиОрганизацийСрезПоследних.Сотрудник.Физлицо,
    РаботникиОрганизацийСрезПоследних.Должность
;

А нельзя ли обойтись без вложенного запроса? Мне кажется, что тоже самое можно было сделать запросом

ВЫБРАТЬ
    РаботникиОрганизацийСрезПоследних.Сотрудник КАК Сотрудник,
    МАКСИМУМ(РаботникиОрганизацийСрезПоследних.Период) КАК Период,
    РаботникиОрганизацийСрезПоследних.Должность КАК Должность
ИЗ
    РегистрСведений.РаботникиОрганизаций.СрезПоследних КАК РаботникиОрганизацийСрезПоследних
    
СГРУППИРОВАТЬ ПО
    РаботникиОрганизацийСрезПоследних.Сотрудник

Объясните, пожалуйста, в чем разница?
1 Heckfy
 
25.03.14
16:33
Задел на оптимизацию :)
2 mzelensky
 
25.03.14
16:34
(1) Где тут задел???
3 mzelensky
 
25.03.14
16:36
(ВЫБРАТЬ
        РаботникиОрганизацийСрезПоследних.Сотрудник КАК Сотрудник,
        МАКСИМУМ(РаботникиОрганизацийСрезПоследних.Период) КАК Период
    ИЗ
        РегистрСведений.РаботникиОрганизаций.СрезПоследних КАК РаботникиОрганизацийСрезПоследних
    
    СГРУППИРОВАТЬ ПО
        РаботникиОрганизацийСрезПоследних.Сотрудник)


Запрос и так должен вернуть максимальный период в разрезе каждого сотрудника. Зачем еще раз группировать????
4 hhhh
 
25.03.14
16:37
(3) если в регисре несколько измерений
5 mzelensky
 
25.03.14
16:39
(4) Ну да. Там должность еще.
6 kumena
 
25.03.14
16:40
(0) если это типовая зупа то вложенный запрос и срез последних к срезу последних делать совсем не обязательно
7 s-n-a-y
 
25.03.14
16:51
(3) нужно получить поле должность
8 s-n-a-y
 
25.03.14
16:52
последнюю по периоду
9 mzelensky
 
25.03.14
16:59
(8) Ну тогда первый вариант
10 vladislav_kz
 
25.03.14
17:17
А обязательно в запросе два раза МАКСИМУМ применять?

Разве одного раза во вложенном? Или это ускорит выполнение запроса?