|
Нужна помощь с запросом: на каждую запись регистра сведений повторить записи из справочник | ☑ | ||
---|---|---|---|---|
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) - рабочий запрос |
Форум | Правила | Описание | Объявления | Секции | Поиск | Книга знаний | Вики-миста |