Добрый день! Изучаю запросы, в задачнике решение задачи приведено таким запросом
Не могу понять и найти ответ, для чего при подсчёте количества сотрудников определённой категории используются 0 и 1. Правильно понимаю, что для того, чтобы система поняла, что это количество и требуется именно числовое значение? Почему бы просто не использовать Количество в группировке в каждом вложенном запросе? Помогите, пожалуйста, понять
ВЫБРАТЬ
СУММА(ДанныеСотрудников.КоличествоВременных) КАК КоличествоВременных,
СУММА(ДанныеСотрудников.КоличествоПостоянных) КАК КоличествоПостоянных,
СУММА(ДанныеСотрудников.КоличествоФрилансеров) КАК КоличествоФрилансеров
ИЗ
(ВЫБРАТЬ
1 КАК КоличествоВременных,
0 КАК КоличествоПостоянных,
0 КАК КоличествоФрилансеров
ИЗ
Справочник.Сотрудники КАК Сотрудники
ГДЕ
Сотрудники.ВидСотрудника = ЗНАЧЕНИЕ(Справочник.ВидыСотрудников.Временный)
ОБЪЕДИНИТЬ ВСЕ
ВЫБРАТЬ
0,
1,
0
ИЗ
Справочник.Сотрудники КАК Сотрудники
ГДЕ
Сотрудники.ВидСотрудника = ЗНАЧЕНИЕ(Справочник.ВидыСотрудников.Постоянный)
ОБЪЕДИНИТЬ ВСЕ
ВЫБРАТЬ
0,
0,
1
ИЗ
Справочник.Сотрудники КАК Сотрудники
ГДЕ
Сотрудники.ВидСотрудника = ЗНАЧЕНИЕ(Справочник.ВидыСотрудников.Фрилансер)) КАК ДанныеСотрудников
ПоказатьНе могу понять и найти ответ, для чего при подсчёте количества сотрудников определённой категории используются 0 и 1. Правильно понимаю, что для того, чтобы система поняла, что это количество и требуется именно числовое значение? Почему бы просто не использовать Количество в группировке в каждом вложенном запросе? Помогите, пожалуйста, понять
По теме из базы знаний
- Как читать чужой код? Часть 3. Разбор и доработка запросов
- Зачем и как читать чужой код? Какой результат ожидаем получить? Основные подходы
- Быстрый фронт в базе размером 6.8 терабайт – наши стандарты при разработке и рефакторинге запросов
- Начните уже использовать хранилище запросов
- Счастливый заказчик, или Как управлять ИТ-проектом, не привлекая внимание санитаров?
Найденные решения
(1) Вы предлагаете использовать Количество в каждом вложенном запросе, то есть добавить еще 3 группировки.
В приведенном запросе используется группировка всего один раз.
Есть разные способы получения данных, которые приведут в конечном счете к одному результату.
Можно получить нужные данные в одном запросе, без вложенных запросов и объединений.
В приведенном запросе используется группировка всего один раз.
Есть разные способы получения данных, которые приведут в конечном счете к одному результату.
Можно получить нужные данные в одном запросе, без вложенных запросов и объединений.
ВЫБРАТЬ
Сумма(Выбор Когда Сотрудники.ВидСотрудника = ЗНАЧЕНИЕ(Справочник.ВидыСотрудников.Временный) Тогда 1 Иначе 0 Конец) КАК КоличествоВременных,
Сумма(Выбор Когда Сотрудники.ВидСотрудника = ЗНАЧЕНИЕ(Справочник.ВидыСотрудников.Постоянный) Тогда 1 Иначе 0 Конец) КАК КоличествоПостоянных,
Сумма(Выбор Когда Сотрудники.ВидСотрудника = ЗНАЧЕНИЕ(Справочник.ВидыСотрудников.Фрилансер) Тогда 1 Иначе 0 Конец) КАК КоличествоФрилансеров
ИЗ
Справочник.Сотрудники КАК Сотрудники
ГДЕ
Сотрудники.ВидСотрудника В (ЗНАЧЕНИЕ(Справочник.ВидыСотрудников.Временный),ЗНАЧЕНИЕ(Справочник.ВидыСотрудников.Постоянный),ЗНАЧЕНИЕ(Справочник.ВидыСотрудников.Фрилансер))
Остальные ответы
Подписаться на ответы
Инфостарт бот
Сортировка:
Древо развёрнутое
Свернуть все
(1) Вы предлагаете использовать Количество в каждом вложенном запросе, то есть добавить еще 3 группировки.
В приведенном запросе используется группировка всего один раз.
Есть разные способы получения данных, которые приведут в конечном счете к одному результату.
Можно получить нужные данные в одном запросе, без вложенных запросов и объединений.
В приведенном запросе используется группировка всего один раз.
Есть разные способы получения данных, которые приведут в конечном счете к одному результату.
Можно получить нужные данные в одном запросе, без вложенных запросов и объединений.
ВЫБРАТЬ
Сумма(Выбор Когда Сотрудники.ВидСотрудника = ЗНАЧЕНИЕ(Справочник.ВидыСотрудников.Временный) Тогда 1 Иначе 0 Конец) КАК КоличествоВременных,
Сумма(Выбор Когда Сотрудники.ВидСотрудника = ЗНАЧЕНИЕ(Справочник.ВидыСотрудников.Постоянный) Тогда 1 Иначе 0 Конец) КАК КоличествоПостоянных,
Сумма(Выбор Когда Сотрудники.ВидСотрудника = ЗНАЧЕНИЕ(Справочник.ВидыСотрудников.Фрилансер) Тогда 1 Иначе 0 Конец) КАК КоличествоФрилансеров
ИЗ
Справочник.Сотрудники КАК Сотрудники
ГДЕ
Сотрудники.ВидСотрудника В (ЗНАЧЕНИЕ(Справочник.ВидыСотрудников.Временный),ЗНАЧЕНИЕ(Справочник.ВидыСотрудников.Постоянный),ЗНАЧЕНИЕ(Справочник.ВидыСотрудников.Фрилансер))
Для получения уведомлений об ответах подключите телеграм бот:
Инфостарт бот