@live_4_ever
Superstar

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

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

Фрагмент запроса
ВЫБРАТЬ
	ВЫБОР
		КОГДА МЕСЯЦ(ДанныеТабельногоУчетаРабочегоВремениСотрудниковОбороты.ПериодРегистрации) = МЕСЯЦ(&ДатаНачала)
			ТОГДА ЕСТЬ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. Если эту временную таблицу удалить результат колонки "начисления" правильный: 6699fd4142e8c722104941.png. Если я просуммирую в конеч. таблице эти поля то результат такое: 6699fd534904d226356736.png

Подскажите, пожалуйста, как в чем моя ошибка и как правильно делать.
  • Вопрос задан
  • 69 просмотров
Пригласить эксперта
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Похожие вопросы