Подскажите с запросом, не выводит значения
Добрый день. Столкнулся с проблемой. Вывожу 4 поля. Если значение не 0, то все выводятся, но если хотя бы одно поле 0, то не выводятся все. Подскажите, как быть? Заранее спасибо!
ВЫБРАТЬ
ВложенныйЗапрос.Сотрудник,
СУММА(ВложенныйЗапрос.КоличествоСМС) КАК КоличествоСМС,
СУММА(ВложенныйЗапрос2.КоличествоЗвонков) КАК КоличествоЗвонков,
СУММА(ВложенныйЗапрос3.КоличествоWhatsApp) КАК КоличествоWhatsApp,
СУММА(ВложенныйЗапрос4.КоличествоEmail) КАК КоличествоEmail
ИЗ
//СМС
(ВЫБРАТЬ
Активность.Автор КАК Сотрудник,
СУММА(1) КАК КоличествоСМС
ИЗ
РегистрСведений.Активность КАК Активность
ГДЕ
Активность.Период МЕЖДУ &НачалоПериода И &КонецПериода
И Активность.ТипАктивности = ЗНАЧЕНИЕ(Справочник.ТипыАктивности.СМС)
И Активность.Автор = &Сотрудник
СГРУППИРОВАТЬ ПО
Активность.Автор ) Как ВложенныйЗапрос,
//ЗВОНКИ
(ВЫБРАТЬ
Активность.Автор КАК Сотрудник,
СУММА(1) КАК КоличествоЗвонков
ИЗ
РегистрСведений.Активность КАК Активность
ГДЕ
Активность.Период МЕЖДУ &НачалоПериода И &КонецПериода
И Активность.ТипАктивности = ЗНАЧЕНИЕ(Справочник.ТипыАктивности.Звонок)
И Активность.Автор = &Сотрудник
СГРУППИРОВАТЬ ПО
Активность.Автор ) Как ВложенныйЗапрос2,
//WhatsApp
(ВЫБРАТЬ
Активность.Автор КАК Сотрудник,
СУММА(1) КАК КоличествоWhatsApp
ИЗ
РегистрСведений.Активность КАК Активность
ГДЕ
Активность.Период МЕЖДУ &НачалоПериода И &КонецПериода
И Активность.Реквизит = "WhatsApp"
И Активность.Автор = &Сотрудник
СГРУППИРОВАТЬ ПО
Активность.Автор ) Как ВложенныйЗапрос3,
//Email
(ВЫБРАТЬ
Активность.Автор КАК Сотрудник,
СУММА(1) КАК КоличествоEmail
ИЗ
РегистрСведений.Активность КАК Активность
ГДЕ
Активность.Период МЕЖДУ &НачалоПериода И &КонецПериода
И Активность.Реквизит = "E-mail"
И Активность.Автор = &Сотрудник
СГРУППИРОВАТЬ ПО
Активность.Автор ) Как ВложенныйЗапрос4
Сгруппировать По ВложенныйЗапрос.Сотрудник
ПоказатьПо теме из базы знаний
- Как продавать, не продавая? Сарафан для 1с-ника
- Не работают регламентные задания?
- 7 капканов на правой стороне стола
- Вывод в отчет всех Серий номенклатуры из таблицы Товары, определение и вывод Основной серии
- История одного админа в мире 1С. Как поиски причины тормозов 1С привели к созданию нового продукта
Найденные решения
если не пересекаются ТипАктивноси и Реквизит, то попробуйте такой запрос
Выбрать
рег.ТипАктивности,
рег.Реквизит,
Количество(1) как Количество
поместить Таб
из
РегистрСведений.Активность КАК рег
где
рег.Период МЕЖДУ &НачалоПериода И &КонецПериода
И рег.Автор = &Сотрудник //а если по всем сотрудникам нужна будет таблица?
Сгруппировать по
рег.ТипАктивности,
рег.Реквизит
;
ВЫБРАТЬ
Пром.Автор,
табСМС.Количество как КоличествоСМС,
табЗв.Количество как КоличествоЗвонков,
табАпп.Количество как КоличествоWhatsApp,
табПочта.Количество как КоличествоEmail,
из
(Выбрать &Сотрудник как Автор) пром
левое соединение Таб ТабСМС
по табСМС.ТипАктивности = ЗНАЧЕНИЕ(Справочник.ТипыАктивности.СМС)
левое соединение Таб ТабЗв
по табЗв.ТипАктивности = ЗНАЧЕНИЕ(Справочник.ТипыАктивности.Звонок)
левое соединение Таб ТабАпп
по табАпп.Реквизит = "WhatsApp"
левое соединение Таб ТабПочта
по ТабПочта.Реквизит = "E-mail"
Упорядочить по
1 автоупорядочивание
Показать
(18) это немного запрос надо подправить, добавить Автора (то что закоментено) и включить его в группировку
и в результирующем запросе, вот это
(Выбрать &Сотрудник как Автор) пром
заменить на справочник (Автор - какой тип?)
и в левые соединения добавить связь СпрАвторы.Ссылка = ПоТипу.Автор (пример)
и в результирующем запросе, вот это
(Выбрать &Сотрудник как Автор) пром
заменить на справочник (Автор - какой тип?)
и в левые соединения добавить связь СпрАвторы.Ссылка = ПоТипу.Автор (пример)
Остальные ответы
Подписаться на ответы
Инфостарт бот
Сортировка:
Древо развёрнутое
Свернуть все
если не пересекаются ТипАктивноси и Реквизит, то попробуйте такой запрос
Выбрать
рег.ТипАктивности,
рег.Реквизит,
Количество(1) как Количество
поместить Таб
из
РегистрСведений.Активность КАК рег
где
рег.Период МЕЖДУ &НачалоПериода И &КонецПериода
И рег.Автор = &Сотрудник //а если по всем сотрудникам нужна будет таблица?
Сгруппировать по
рег.ТипАктивности,
рег.Реквизит
;
ВЫБРАТЬ
Пром.Автор,
табСМС.Количество как КоличествоСМС,
табЗв.Количество как КоличествоЗвонков,
табАпп.Количество как КоличествоWhatsApp,
табПочта.Количество как КоличествоEmail,
из
(Выбрать &Сотрудник как Автор) пром
левое соединение Таб ТабСМС
по табСМС.ТипАктивности = ЗНАЧЕНИЕ(Справочник.ТипыАктивности.СМС)
левое соединение Таб ТабЗв
по табЗв.ТипАктивности = ЗНАЧЕНИЕ(Справочник.ТипыАктивности.Звонок)
левое соединение Таб ТабАпп
по табАпп.Реквизит = "WhatsApp"
левое соединение Таб ТабПочта
по ТабПочта.Реквизит = "E-mail"
Упорядочить по
1 автоупорядочивание
Показать
(13) ну вот "двоит" это из-за разных сочетаний типа и реквизита, попробуйте второй вариант запроса,
промежуточный расчет сделан в две временные таблицы, попробуйте его в консоли
Выбрать
// рег.Автор,
рег.ТипАктивности,
Количество(1) как Количество
поместить поТипу
из
РегистрСведений.Активность КАК рег
где
рег.Период МЕЖДУ &НачалоПериода И &КонецПериода
И рег.Автор = &Сотрудник //а если по всем сотрудникам нужна будет таблица?
Сгруппировать по
рег.ТипАктивности
;
Выбрать
// рег.Автор,
рег.Реквизит,
Количество(1) как Количество
поместить поРеквизиту
из
РегистрСведений.Активность КАК рег
где
рег.Период МЕЖДУ &НачалоПериода И &КонецПериода
И рег.Автор = &Сотрудник //а если по всем сотрудникам нужна будет таблица?
Сгруппировать по
рег.Реквизит
;
ВЫБРАТЬ
Пром.Автор,
табСМС.Количество как КоличествоСМС,
табЗв.Количество как КоличествоЗвонков,
табАпп.Количество как КоличествоWhatsApp,
табПочта.Количество как КоличествоEmail,
из
(Выбрать &Сотрудник как Автор) пром
левое соединение поТипу ТабСМС
по табСМС.ТипАктивности = ЗНАЧЕНИЕ(Справочник.ТипыАктивности.СМС)
левое соединение поТипу ТабЗв
по табЗв.ТипАктивности = ЗНАЧЕНИЕ(Справочник.ТипыАктивности.Звонок)
левое соединение поРеквизиту ТабАпп
по табАпп.Реквизит = "WhatsApp"
левое соединение поРеквизиту ТабПочта
по ТабПочта.Реквизит = "E-mail"
Упорядочить по
1 автоупорядочивание
Показать
промежуточный расчет сделан в две временные таблицы, попробуйте его в консоли
Выбрать
// рег.Автор,
рег.ТипАктивности,
Количество(1) как Количество
поместить поТипу
из
РегистрСведений.Активность КАК рег
где
рег.Период МЕЖДУ &НачалоПериода И &КонецПериода
И рег.Автор = &Сотрудник //а если по всем сотрудникам нужна будет таблица?
Сгруппировать по
рег.ТипАктивности
;
Выбрать
// рег.Автор,
рег.Реквизит,
Количество(1) как Количество
поместить поРеквизиту
из
РегистрСведений.Активность КАК рег
где
рег.Период МЕЖДУ &НачалоПериода И &КонецПериода
И рег.Автор = &Сотрудник //а если по всем сотрудникам нужна будет таблица?
Сгруппировать по
рег.Реквизит
;
ВЫБРАТЬ
Пром.Автор,
табСМС.Количество как КоличествоСМС,
табЗв.Количество как КоличествоЗвонков,
табАпп.Количество как КоличествоWhatsApp,
табПочта.Количество как КоличествоEmail,
из
(Выбрать &Сотрудник как Автор) пром
левое соединение поТипу ТабСМС
по табСМС.ТипАктивности = ЗНАЧЕНИЕ(Справочник.ТипыАктивности.СМС)
левое соединение поТипу ТабЗв
по табЗв.ТипАктивности = ЗНАЧЕНИЕ(Справочник.ТипыАктивности.Звонок)
левое соединение поРеквизиту ТабАпп
по табАпп.Реквизит = "WhatsApp"
левое соединение поРеквизиту ТабПочта
по ТабПочта.Реквизит = "E-mail"
Упорядочить по
1 автоупорядочивание
(11) очень надеюсь что авторы анализируют и сравнивают свой вариант запроса с предложенным, и понимают какие конструкции/методы приводят к правильному решению. В дальнейшем они смогут использовать данный запрос как шаблон/пример для решения подобных задач.
обучение на примере (правильном) - тоже вариант!
(ну не читать же здесь курс лекций по реляционным таблицам)
обучение на примере (правильном) - тоже вариант!
(ну не читать же здесь курс лекций по реляционным таблицам)
(18) это немного запрос надо подправить, добавить Автора (то что закоментено) и включить его в группировку
и в результирующем запросе, вот это
(Выбрать &Сотрудник как Автор) пром
заменить на справочник (Автор - какой тип?)
и в левые соединения добавить связь СпрАвторы.Ссылка = ПоТипу.Автор (пример)
и в результирующем запросе, вот это
(Выбрать &Сотрудник как Автор) пром
заменить на справочник (Автор - какой тип?)
и в левые соединения добавить связь СпрАвторы.Ссылка = ПоТипу.Автор (пример)
Для получения уведомлений об ответах подключите телеграм бот:
Инфостарт бот