Помогите разобраться с отчетом, я написал запрос который берет из уатПутевойЛист.Задание количество километров и (количество часов для техники по которой учет идет по моточасам), так же сделал запрос для взятие данных из уатПутевойЛист.РасходГСМ что бы он брал расход по факту. Дальше мне нужно общий пробег-Моточасы разделить на расход топлива по факту = Итоговую сумму * количество км и моточасов по объектам строительства. Он мне выдает в колонке расход по факту неверные числа. Прикрепляю код запроса и два скрина 1) правильный это как считают диспетчера 2)Что получается у меня. Он почему-то расход не верный берет.
ВЫБРАТЬ
уатПутевойЛистЗадание.Ссылка.ТранспортноеСредство КАК ТС,
уатПутевойЛистЗадание.ОбъектСтроительства КАК ОбъектСтроительства,
СУММА((уатПутевойЛистЗадание.КоличествоКмГруз + уатПутевойЛистЗадание.КоличествоКмПорожний) *
уатПутевойЛистЗадание.КоличествоЕздок) КАК КоличествоКм,
СУММА(уатПутевойЛистЗадание.КоличествоЧасов) КАК КоличествоЧасов
ПОМЕСТИТЬ ВтТаблицаИтогов
ИЗ
Документ.уатПутевойЛист.Задание КАК уатПутевойЛистЗадание
ГДЕ
уатПутевойЛистЗадание.Ссылка.Дата МЕЖДУ &ДатаНачала И &ДатаОкончания
СГРУППИРОВАТЬ ПО
уатПутевойЛистЗадание.Ссылка.ТранспортноеСредство,
уатПутевойЛистЗадание.ОбъектСтроительства
;
////////////////////////////////////////////////////////////////////////////////
ВЫБРАТЬ
уатПутевойЛистРасходГСМ.ТС КАК ТС,
СУММА(уатПутевойЛистРасходГСМ.РасходПоФакту) КАК РасходПоФакту,
СУММА((уатПутевойЛистЗадание.КоличествоКмГруз + уатПутевойЛистЗадание.КоличествоКмПорожний) * уатПутевойЛистЗадание.КоличествоЕздок) КАК Количество,
СУММА(уатПутевойЛистЗадание.КоличествоЧасов) КАК Часы,
ВЫБОР
КОГДА СУММА((уатПутевойЛистЗадание.КоличествоКмГруз + уатПутевойЛистЗадание.КоличествоКмПорожний) * уатПутевойЛистЗадание.КоличествоЕздок) > 0
ТОГДА СУММА(уатПутевойЛистРасходГСМ.РасходПоФакту) / СУММА((уатПутевойЛистЗадание.КоличествоКмГруз + уатПутевойЛистЗадание.КоличествоКмПорожний) * уатПутевойЛистЗадание.КоличествоЕздок)
ИНАЧЕ СУММА(уатПутевойЛистРасходГСМ.РасходПоФакту) / СУММА(уатПутевойЛистЗадание.КоличествоЧасов)
КОНЕЦ КАК ЛитрНаЕдиницу
ПОМЕСТИТЬ ВТТопливо
ИЗ
Документ.уатПутевойЛист.РасходГСМ КАК уатПутевойЛистРасходГСМ
ЛЕВОЕ СОЕДИНЕНИЕ Документ.уатПутевойЛист.Задание КАК уатПутевойЛистЗадание
ПО уатПутевойЛистРасходГСМ.Ссылка = уатПутевойЛистЗадание.Ссылка
ГДЕ
уатПутевойЛистРасходГСМ.Ссылка.Дата МЕЖДУ &ДатаНачала И &ДатаОкончания
СГРУППИРОВАТЬ ПО
уатПутевойЛистРасходГСМ.ТС
;
////////////////////////////////////////////////////////////////////////////////
ВЫБРАТЬ
ВтТаблицаИтогов.ТС КАК ТС,
ВтТаблицаИтогов.ТС.Подразделение КАК ТСПодразделение,
ВтТаблицаИтогов.ОбъектСтроительства КАК ОбъектСтроительства,
ВтТаблицаИтогов.КоличествоКм КАК КоличествоКм,
ВЫБОР
КОГДА ВтТаблицаИтогов.КоличествоКм > 0
ТОГДА 0
ИНАЧЕ ВтТаблицаИтогов.КоличествоЧасов
КОНЕЦ КАК КоличествоЧасов,
ВЫБОР
КОГДА ВтТаблицаИтогов.КоличествоКм > 0
ТОГДА ВтТаблицаИтогов.КоличествоКм * ВТТопливо.ЛитрНаЕдиницу
ИНАЧЕ ВтТаблицаИтогов.КоличествоЧасов * ВТТопливо.ЛитрНаЕдиницу
КОНЕЦ КАК РасходПоФакту
ИЗ
ВтТаблицаИтогов КАК ВтТаблицаИтогов
ЛЕВОЕ СОЕДИНЕНИЕ ВТТопливо КАК ВТТопливо
ПО ВтТаблицаИтогов.ТС = ВТТопливо.ТС
ВЫБРАТЬ
уатПутевойЛистЗадание.Ссылка.ТранспортноеСредство КАК ТС,
уатПутевойЛистЗадание.ОбъектСтроительства КАК ОбъектСтроительства,
СУММА((уатПутевойЛистЗадание.КоличествоКмГруз + уатПутевойЛистЗадание.КоличествоКмПорожний) *
уатПутевойЛистЗадание.КоличествоЕздок) КАК КоличествоКм,
СУММА(уатПутевойЛистЗадание.КоличествоЧасов) КАК КоличествоЧасов
ПОМЕСТИТЬ ВтТаблицаИтогов
ИЗ
Документ.уатПутевойЛист.Задание КАК уатПутевойЛистЗадание
ГДЕ
уатПутевойЛистЗадание.Ссылка.Дата МЕЖДУ &ДатаНачала И &ДатаОкончания
СГРУППИРОВАТЬ ПО
уатПутевойЛистЗадание.Ссылка.ТранспортноеСредство,
уатПутевойЛистЗадание.ОбъектСтроительства
;
////////////////////////////////////////////////////////////
ВЫБРАТЬ
уатПутевойЛистРасходГСМ.ТС КАК ТС,
СУММА(уатПутевойЛистРасходГСМ.РасходПоФакту) КАК РасходПоФакту,
СУММА((уатПутевойЛистЗадание.КоличествоКмГруз + уатПутевойЛистЗадание.КоличествоКмПорожний) * уатПутевойЛистЗадание.КоличествоЕздок) КАК Количество,
СУММА(уатПутевойЛистЗадание.КоличествоЧасов) КАК Часы,
ВЫБОР
КОГДА СУММА((уатПутевойЛистЗадание.КоличествоКмГруз + уатПутевойЛистЗадание.КоличествоКмПорожний) * уатПутевойЛистЗадание.КоличествоЕздок) > 0
ТОГДА СУММА(уатПутевойЛистРасходГСМ.РасходПоФакту) / СУММА((уатПутевойЛистЗадание.КоличествоКмГруз + уатПутевойЛистЗадание.КоличествоКмПорожний) * уатПутевойЛистЗадание.КоличествоЕздок)
ИНАЧЕ СУММА(уатПутевойЛистРасходГСМ.РасходПоФакту) / СУММА(уатПутевойЛистЗадание.КоличествоЧасов)
КОНЕЦ КАК ЛитрНаЕдиницу
ПОМЕСТИТЬ ВТТопливо
ИЗ
Документ.уатПутевойЛист.РасходГСМ КАК уатПутевойЛистРасходГСМ
ЛЕВОЕ СОЕДИНЕНИЕ Документ.уатПутевойЛист.Задание КАК уатПутевойЛистЗадание
ПО уатПутевойЛистРасходГСМ.Ссылка = уатПутевойЛистЗадание.Ссылка
ГДЕ
уатПутевойЛистРасходГСМ.Ссылка.Дата МЕЖДУ &ДатаНачала И &ДатаОкончания
СГРУППИРОВАТЬ ПО
уатПутевойЛистРасходГСМ.ТС
;
////////////////////////////////////////////////////////////
ВЫБРАТЬ
ВтТаблицаИтогов.ТС КАК ТС,
ВтТаблицаИтогов.ТС.Подразделение КАК ТСПодразделение,
ВтТаблицаИтогов.ОбъектСтроительства КАК ОбъектСтроительства,
ВтТаблицаИтогов.КоличествоКм КАК КоличествоКм,
ВЫБОР
КОГДА ВтТаблицаИтогов.КоличествоКм > 0
ТОГДА 0
ИНАЧЕ ВтТаблицаИтогов.КоличествоЧасов
КОНЕЦ КАК КоличествоЧасов,
ВЫБОР
КОГДА ВтТаблицаИтогов.КоличествоКм > 0
ТОГДА ВтТаблицаИтогов.КоличествоКм * ВТТопливо.ЛитрНаЕдиницу
ИНАЧЕ ВтТаблицаИтогов.КоличествоЧасов * ВТТопливо.ЛитрНаЕдиницу
КОНЕЦ КАК РасходПоФакту
ИЗ
ВтТаблицаИтогов КАК ВтТаблицаИтогов
ЛЕВОЕ СОЕДИНЕНИЕ ВТТопливо КАК ВТТопливо
ПО ВтТаблицаИтогов.ТС = ВТТопливо.ТС
Прикрепленные файлы:


По теме из базы знаний
Найденные решения
Остальные ответы
Подписаться на ответы
Инфостарт бот
Сортировка:
Древо развёрнутое
Свернуть все
Добрый день. проверьте каждый кусок запроса, до объедении и поглядите если в каждом по отдельности цифры нормально, тогда ошибка в объединении, скорее всего при связи запросов.
Можно было бы глянуть сам отчет физически но у меня нет такой конфигурации как у вас.
Можно было бы глянуть сам отчет физически но у меня нет такой конфигурации как у вас.
У Вас задвоение из-за того, что соединяете только по ТС и топливу.
А как же левое соединение по регистратору? Свяжите ещё по регистратору.
И даже это может не избавить от проблем, если у Вас в путевых листах более одного строк задания
А как же левое соединение по регистратору? Свяжите ещё по регистратору.
И даже это может не избавить от проблем, если у Вас в путевых листах более одного строк задания
(15) так я же и спрашиваю. Например имеем путевой лист, в нем три строки задания, объект строительства 1, объект строительства 2, и объект строительства 3
Общий расход по ПЛ 100 литров.
Как они определяет на какой объект сколько литров упало?
Просто тупо считают общий расход по пл, и делят его на общий пробег, и потом множат на количество пробега?
Общий расход по ПЛ 100 литров.
Как они определяет на какой объект сколько литров упало?
Просто тупо считают общий расход по пл, и делят его на общий пробег, и потом множат на количество пробега?
Для получения уведомлений об ответах подключите телеграм бот:
Инфостарт бот