Здравствуйте. Я не понимаю некоторые моменты при работе с запросом. А именно как правильно делать связь, группировку.
Вот запрос который я "написал". Он объемный. Проблема с этой временной таблицей:
Фрагмент запросаВЫБРАТЬ
ВЫБОР
КОГДА МЕСЯЦ(ДанныеТабельногоУчетаРабочегоВремениСотрудниковОбороты.ПериодРегистрации) = МЕСЯЦ(&ДатаНачала)
ТОГДА ЕСТЬNULL(ДанныеТабельногоУчетаРабочегоВремениСотрудниковОбороты.ДниОборот, 0)
ИНАЧЕ 0
КОНЕЦ КАК ОтработанныеДни2_1_1,
ВЫБОР
КОГДА МЕСЯЦ(ДанныеТабельногоУчетаРабочегоВремениСотрудниковОбороты.ПериодРегистрации) > МЕСЯЦ(&ДатаНачала)
И МЕСЯЦ(ДанныеТабельногоУчетаРабочегоВремениСотрудниковОбороты.ПериодРегистрации) < МЕСЯЦ(&ДатаОкончания)
ТОГДА ЕСТЬNULL(ДанныеТабельногоУчетаРабочегоВремениСотрудниковОбороты.ДниОборот, 0)
ИНАЧЕ 0
КОНЕЦ КАК ОтработанныеДни2_1_2,
ВЫБОР
КОГДА МЕСЯЦ(ДанныеТабельногоУчетаРабочегоВремениСотрудниковОбороты.ПериодРегистрации) = МЕСЯЦ(&ДатаОкончания)
ТОГДА ЕСТЬNULL(ДанныеТабельногоУчетаРабочегоВремениСотрудниковОбороты.ДниОборот, 0)
ИНАЧЕ 0
КОНЕЦ КАК ОтработанныеДни2_1_3,
ДанныеТабельногоУчетаРабочегоВремениСотрудниковОбороты.Сотрудник КАК Сотрудник
ПОМЕСТИТЬ ВТ_Дни
ИЗ
РегистрНакопления.ДанныеТабельногоУчетаРабочегоВремениСотрудников.Обороты(, , , ) КАК ДанныеТабельногоУчетаРабочегоВремениСотрудниковОбороты
ГДЕ
ДанныеТабельногоУчетаРабочегоВремениСотрудниковОбороты.ВидУчетаВремени = &ВидУчетаВремени
СГРУППИРОВАТЬ ПО
ВЫБОР
КОГДА МЕСЯЦ(ДанныеТабельногоУчетаРабочегоВремениСотрудниковОбороты.ПериодРегистрации) = МЕСЯЦ(&ДатаНачала)
ТОГДА ЕСТЬNULL(ДанныеТабельногоУчетаРабочегоВремениСотрудниковОбороты.ДниОборот, 0)
ИНАЧЕ 0
КОНЕЦ,
ВЫБОР
КОГДА МЕСЯЦ(ДанныеТабельногоУчетаРабочегоВремениСотрудниковОбороты.ПериодРегистрации) > МЕСЯЦ(&ДатаНачала)
И МЕСЯЦ(ДанныеТабельногоУчетаРабочегоВремениСотрудниковОбороты.ПериодРегистрации) < МЕСЯЦ(&ДатаОкончания)
ТОГДА ЕСТЬNULL(ДанныеТабельногоУчетаРабочегоВремениСотрудниковОбороты.ДниОборот, 0)
ИНАЧЕ 0
КОНЕЦ,
ВЫБОР
КОГДА МЕСЯЦ(ДанныеТабельногоУчетаРабочегоВремениСотрудниковОбороты.ПериодРегистрации) = МЕСЯЦ(&ДатаОкончания)
ТОГДА ЕСТЬNULL(ДанныеТабельногоУчетаРабочегоВремениСотрудниковОбороты.ДниОборот, 0)
ИНАЧЕ 0
КОНЕЦ,
ДанныеТабельногоУчетаРабочегоВремениСотрудниковОбороты.Сотрудник
;
В результ. таблице делаю связь:
ИЗ ВТ_Начисления КАК ВТ_Начисления
ЛЕВОЕ СОЕДИНЕНИЕ ВТ_Дни КАК ВТ_Дни
ПО ВТ_Начисления.Сотрудник = ВТ_Дни.Сотрудник
В таком случае результат такой:
![6699fd1aa21bf956938159.png](https://habrastorage.org/webt/66/99/fd/6699fd1aa21bf956938159.png)
. Если эту временную таблицу удалить результат колонки "начисления" правильный:
![6699fd4142e8c722104941.png](https://habrastorage.org/webt/66/99/fd/6699fd4142e8c722104941.png)
. Если я просуммирую в конеч. таблице эти поля то результат такое:
Подскажите, пожалуйста, как в чем моя ошибка и как правильно делать.