Как правильно выстраивать связь и делать группировку в запросе

1. NicolasCage 19.07.24 08:40 Сейчас в теме
Здравствуйте. Я не понимаю некоторые моменты при работе с запросом. А именно как правильно делать связь, группировку. Вот запрос который я "написал". Он объемный. Проблема с этой временной таблицей:

Фрагмент запроса


В результ. таблице делаю связь:

ИЗ ВТ_Начисления КАК ВТ_Начисления 
ЛЕВОЕ СОЕДИНЕНИЕ ВТ_Дни КАК ВТ_Дни
ПО ВТ_Начисления.Сотрудник = ВТ_Дни.Сотрудник


В таком случае результат такой: СКРИН. Если эту временную таблицу удалить результат колонки "начисления" правильный: СКРИН. Если я просуммирую в конеч. таблице эти поля то результат такое: СКРИН.


Подскажите, пожалуйста, как в чем моя ошибка и как правильно делать.
По теме из базы знаний
Найденные решения
3. newlogin1 19.07.24 09:20 Сейчас в теме
(1) Здравствуйте, проблема в том, что в первой таблице у вас несколько записей получается, по всей видимости первую таблицу надо не группировать, а суммировать (колонки с числами)
Тогда у вас будет запись
Сотрудник 2 2 2
А сейчас у вас записи
Сотрудник 1 0 1
Сотрудник 0 0 1
Сотрудник 0 0 0
И так далее
NicolasCage; +1 Ответить
8. Kulakov_P 22.07.24 07:49 Сейчас в теме
(5) вопрос оптимальности

Утрированно: когда вы получаете виртуальную таблицу без параметров вы получаете большой массив записей, на который уже потом накладывается условие ГДЕ и отбираются необходимые записи.
Если же вы сразу передаете параметры в виртуальную таблицу, то получаете сразу сроки с необходимым отбором, сокращая время получения и дальнейшей обработки запроса.
Вариант без использования параметров вирт. таблицы работать будет, но на больших объемах данных может начать жутко тормозить или вообще не сможет получить данные, т.к. не хватит памяти собрать все записи.
NicolasCage; +1 Ответить
Остальные ответы
Подписаться на ответы Инфостарт бот Сортировка: Древо развёрнутое
Свернуть все
3. newlogin1 19.07.24 09:20 Сейчас в теме
(1) Здравствуйте, проблема в том, что в первой таблице у вас несколько записей получается, по всей видимости первую таблицу надо не группировать, а суммировать (колонки с числами)
Тогда у вас будет запись
Сотрудник 2 2 2
А сейчас у вас записи
Сотрудник 1 0 1
Сотрудник 0 0 1
Сотрудник 0 0 0
И так далее
NicolasCage; +1 Ответить
6. NicolasCage 19.07.24 10:20 Сейчас в теме
(3) Так и есть. Спасибо. Получилось исправить. Первую таблицу надо суммировать было.
2. ico 19.07.24 09:19 Сейчас в теме
А в колонке ФИН вообще пусто!
Что Вы показали? Три строчки запроса. И хотите получить помощь.
Ну-ну...
И вообще конструктором запроса пользуйтесь. Рано Вам еще ручками запросы писать.
4. user2033930 19.07.24 09:29 Сейчас в теме
Да и условия измерений на оборотную таблицу надо использовать в параметрах виртуальной таблицы, а не в ГДЕ.
NicolasCage; +1 Ответить
5. NicolasCage 19.07.24 10:19 Сейчас в теме
(4) А почему нужно через в параметрах виртуальной таблицы, а не в ГДЕ?
7. user2033930 19.07.24 10:30 Сейчас в теме
(5) Потому что надо ходить на зелёный свет светофора, а не на красный.
На красный, конечно, никто не запрещает. Но умные ходят на зелёный.

Вот почему так нужно?
8. Kulakov_P 22.07.24 07:49 Сейчас в теме
(5) вопрос оптимальности

Утрированно: когда вы получаете виртуальную таблицу без параметров вы получаете большой массив записей, на который уже потом накладывается условие ГДЕ и отбираются необходимые записи.
Если же вы сразу передаете параметры в виртуальную таблицу, то получаете сразу сроки с необходимым отбором, сокращая время получения и дальнейшей обработки запроса.
Вариант без использования параметров вирт. таблицы работать будет, но на больших объемах данных может начать жутко тормозить или вообще не сможет получить данные, т.к. не хватит памяти собрать все записи.
NicolasCage; +1 Ответить
9. NicolasCage 22.07.24 16:18 Сейчас в теме
(8) спасибо вам большое! Лучшее объяснение!
Оставьте свое сообщение

Для получения уведомлений об ответах подключите телеграм бот:
Инфостарт бот