|   |   | 
| 
 | Нужна помощь с запросом: на каждую запись регистра сведений повторить записи из справочник | ☑ | ||
|---|---|---|---|---|
| 0
    
        vdeemer 25.04.19✎ 10:34 | 
        Доброго времени суток!
 Помогите, пожалуйста, составить следующий запрос по вводным: Есть справочники Пользователи и ПоказателиАктивности, регистр КоэффициентыПоказателейАктивностиПользователей (измерения Пользователь и Показатель, ресурс ЗначениеПоказателя). Нужна выборка записей вида {Пользователь:ПоказательАктивности:ЗначениеПоказателя}, но на каждого пользователя из регистра надо вывести ВСЕ записи из справочника показателей. Если для какого-то показателя активности для данного пользователя нет записи в регистре, то значение показателя = NULL. Такое возможно сделать запросом? Спасибо. | |||
| 1
    
        1Сергей 25.04.19✎ 10:35 | 
        Обычные левые сеодинения     | |||
| 2
    
        vdeemer 25.04.19✎ 10:36 | 
        (1) пробовал, не выходит     | |||
| 3
    
        1Сергей 25.04.19✎ 10:38 | 
        (2) Я думаю наши отношения уже перешли на новый уровень - не стесняйся, показывай запрос     | |||
| 4
    
        vdeemer 25.04.19✎ 10:39 | 
        ВЫБРАТЬ
 СпрПоказатели.Ссылка ПОМЕСТИТЬ ВТ_Показатели ИЗ Справочник.ТРК_ПоказателиАктивности КАК СпрПоказатели ; //////////////////////////////////////////////////////////////////////////////// ВЫБРАТЬ ЗначенияПоказателей.Показатель, ЗначенияПоказателей.Пользователь, ЗначенияПоказателей.Коэффициент, ВТ_Показатели.Ссылка ИЗ ВТ_Показатели КАК ВТ_Показатели ЛЕВОЕ СОЕДИНЕНИЕ РегистрСведений.ЗначенияПоказателейПоВидамАктивности.СрезПоследних КАК ЗначенияПоказателей ПО ВТ_Показатели.Ссылка = ЗначенияПоказателей.Пользователь | |||
| 5
    
        vdeemer 25.04.19✎ 10:39 | 
        (3) Ахаха, я уже писал в это время     | |||
| 6
    
        patria0muerte 25.04.19✎ 10:39 | 
        Сначала перемножь таблицы Пользователи и Показатели, помести во временную, потом левым соединением к ней цепляй регистр     | |||
| 7
    
        1Сергей 25.04.19✎ 10:40 | 
        (4) так надо к Пользователям соединять всё остальное, если нужны все пользователи     | |||
| 8
    
        vdeemer 25.04.19✎ 10:40 | 
        (6) тогда вылезут все пользователи, а они мне не нужны     | |||
| 9
    
        patria0muerte 25.04.19✎ 10:41 | 
        Ну сначала отбери пользователей как тебе надо, потом (46     | |||
| 10
    
        patria0muerte 25.04.19✎ 10:41 | 
        *Потом (6)     | |||
| 11
    
        vdeemer 25.04.19✎ 10:41 | 
        на каждого пользователя, который есть в записях регистра, нужно вывести все записи справочника показателей     | |||
| 12
    
        vdeemer 25.04.19✎ 10:41 | 
        Разве (9) (10) <> (4)?     | |||
| 13
    
        catena 25.04.19✎ 10:43 | 
        (12)Не равно. Отбери из регистра всех пользователей и скрещивай их со всеми показателями     | |||
| 14
    
        vdeemer 25.04.19✎ 10:43 | 
        (12) не то, сам понял))
 в общем, сначала выбрать РАЗЛИЧНЫЕ пользователи, потом перемножить, потом... Сейчас попробую | |||
| 15
    
        vdeemer 25.04.19✎ 10:43 | 
        (13) ага, (14)     | |||
| 16
    
        patria0muerte 25.04.19✎ 10:43 | 
        (12) Хм, да. Равно упустил момент, что "на каждого пользователя из регистра". Тогда (4) пойдет вполне     | |||
| 17
    
        vdeemer 25.04.19✎ 10:46 | 
        (16) не, не подходит. Надо (14)     | |||
| 18
    
        Simod 25.04.19✎ 10:55 | 
        ВЫБРАТЬ
 СПР_Пользователи.Ссылка КАК Пользователь, СПР_ПоказателиАктивности.Ссылка КАК Показатель, РС_КоэффициентыПоказателейАктивностиПользователей.ЗначениеПоказателя КАК Значение ИЗ Справочник.Пользователи КАК СПР_Пользователи ЛЕВОЕ СОЕДИНЕНИЕ Справочник.ПоказателиАктивности КАК СПР_ПоказателиАктивности ПО Истина ЛЕВОЕ СОЕДИНЕНИЕ РегистрСведений.КоэффициентыПоказателейАктивностиПользователей КАК РС_КоэффициентыПоказателейАктивностиПользователей ПО СПР_Пользователи.Ссылка = РС_КоэффициентыПоказателейАктивностиПользователей.Пользователь И СПР_ПоказателиАктивности.Ссылка = РС_КоэффициентыПоказателейАктивностиПользователей.Показатель | |||
| 19
    
        vdeemer 25.04.19✎ 10:57 | 
        ВЫБРАТЬ РАЗЛИЧНЫЕ
 ЗначенияПоказателейПоВидамАктивности.Пользователь ПОМЕСТИТЬ ВТ_Пользователи ИЗ РегистрСведений.ЗначенияПоказателейПоВидамАктивности.СрезПоследних(&ДатаСреза, ) КАК ЗначенияПоказателейПоВидамАктивности ; //////////////////////////////////////////////////////////////////////////////// ВЫБРАТЬ ВТ_Пользователи.Пользователь, ТРК_ПоказателиАктивности.Ссылка КАК Показатель ПОМЕСТИТЬ ВТ_Умножение ИЗ ВТ_Пользователи КАК ВТ_Пользователи, Справочник.ТРК_ПоказателиАктивности КАК ТРК_ПоказателиАктивности ; //////////////////////////////////////////////////////////////////////////////// ВЫБРАТЬ ВТ_Умножение.Пользователь КАК Пользователь, ВТ_Умножение.Показатель КАК Показатель, ЕСТЬNULL(ЗначенияПоказателей.Коэффициент, 0) КАК Коэффициент ИЗ ВТ_Умножение КАК ВТ_Умножение ЛЕВОЕ СОЕДИНЕНИЕ РегистрСведений.ЗначенияПоказателейПоВидамАктивности.СрезПоследних(&ДатаСреза, ) КАК ЗначенияПоказателей ПО ВТ_Умножение.Пользователь= ЗначенияПоказателей.Пользователь И ВТ_Умножение.Показатель = ЗначенияПоказателей.Показатель УПОРЯДОЧИТЬ ПО Пользователь, Показатель | |||
| 20
    
        Simod 25.04.19✎ 10:57 | 
        Сорри, не увидел, что по пользователя из регистра. Но думаю общая идея понятна.     | |||
| 21
    
        vdeemer 25.04.19✎ 11:00 | 
        (20) ага, проверяю
 так-то (19) дает то, что надо | |||
| 22
    
        vdeemer 25.04.19✎ 11:06 | 
        (20) работает, спасибо
 Всем спасибо, (18) и (19) - рабочий запрос | 
| Форум | Правила | Описание | Объявления | Секции | Поиск | Книга знаний | Вики-миста |