Цитата(andr_andrey @ 15.12.14, 10:12) необходимо зарегистрироваться для просмотра ссылки
Вы про это имеете ввиду ЕСТЬNULL(УстановкаПодПогрузку, ДАТАВРЕМЯ(0001,01,01,0,0,0))?
Нет, у меня есть значения в ресурсах Прибытие, УстановкаПодПогрузку,ОкончаниеПогрузки, УстановкаПодВыгрузку,ОкончаниеВыгрузки, Отправка. Мне нужно посчитать общее количесвто простоя в часах.
В запросе я высчитываю время по операциям, т.е.
ВремяДоУстановкиПодВыгрузку = УстановкаПодВыгрузку - Прибытие.
ВремяВыгрузки = ОкончаниеВыгрузки - УстановкаПодВыгрузку.
и так далее.
Сделал так, а как можно еще?
ВЫБРАТЬ
ПростойВагона.НомерВагона,
ПростойВагона.ПрибытияВагона,
ПростойВагона.УстановкаПодВыгрузку,
ПростойВагона.ОкончаниеВыгрузки,
ПростойВагона.ПрибытиеДокументовПослеДекларирования,
ПростойВагона.ПрибытиеИнструкцийВОтправкуПОРПВ,
ПростойВагона.УстановкаПодПогрузку,
ПростойВагона.ОкончаниеПогрузки,
ПростойВагона.ПрибытиеДокументовПослеТаможирования,
ПростойВагона.ВозвратПВст,
ПростойВагона.Ответственный,
ПростойВагона.ПринадлежностьВагона,
ПростойВагона.НоменклатураПрибытие,
ПростойВагона.НоменклатураОтправка,
ПростойВагона.СостояниеВагона,
ПростойВагона.ПростойПоКоманде
ПОМЕСТИТЬ ВТ_РСПростой
ИЗ
РегистрСведений.ПростойВагона КАК ПростойВагона
ГДЕ
ПростойВагона.ПрибытияВагона >= &ДатаНачала
И ПростойВагона.ПрибытияВагона <= &ДатаКонец
;
////////////////////////////////////////////////////////////////////////////////
ВЫБРАТЬ
ВТ_РСПростой.НомерВагона,
ВТ_РСПростой.ПрибытияВагона,
ВТ_РСПростой.УстановкаПодВыгрузку,
ВЫБОР
КОГДА ВТ_РСПростой.ПрибытияВагона <> ДАТАВРЕМЯ(1, 1, 1, 0, 0, 0)
И ВТ_РСПростой.УстановкаПодВыгрузку <> ДАТАВРЕМЯ(1, 1, 1, 0, 0, 0)
ТОГДА РАЗНОСТЬДАТ(ВТ_РСПростой.ПрибытияВагона, ВТ_РСПростой.УстановкаПодВыгрузку, ЧАС)
ИНАЧЕ 0
КОНЕЦ КАК ВремяДоУстановкиПодВыгрузку,
ВТ_РСПростой.ОкончаниеВыгрузки,
ВЫБОР
КОГДА ВТ_РСПростой.УстановкаПодВыгрузку <> ДАТАВРЕМЯ(1, 1, 1, 0, 0, 0)
И ВТ_РСПростой.ОкончаниеВыгрузки <> ДАТАВРЕМЯ(1, 1, 1, 0, 0, 0)
ТОГДА РАЗНОСТЬДАТ(ВТ_РСПростой.УстановкаПодВыгрузку, ВТ_РСПростой.ОкончаниеВыгрузки, ЧАС)
ИНАЧЕ 0
КОНЕЦ КАК ВремяВыгрузки,
ВТ_РСПростой.ПрибытиеДокументовПослеДекларирования КАК ПрибытиеДокументовДекларирования,
ВТ_РСПростой.ПрибытиеИнструкцийВОтправкуПОРПВ КАК ПрибытиеИнструкции,
ВТ_РСПростой.УстановкаПодПогрузку,
ВЫБОР
КОГДА ВТ_РСПростой.ОкончаниеВыгрузки <> ДАТАВРЕМЯ(1, 1, 1, 0, 0, 0)
И ВТ_РСПростой.УстановкаПодПогрузку <> ДАТАВРЕМЯ(1, 1, 1, 0, 0, 0)
ТОГДА РАЗНОСТЬДАТ(ВТ_РСПростой.ОкончаниеВыгрузки, ВТ_РСПростой.УстановкаПодПогрузку, ЧАС)
ИНАЧЕ 0
КОНЕЦ КАК ВремяВОжиданииПогрузки,
ВТ_РСПростой.ОкончаниеПогрузки,
ВЫБОР
КОГДА ВТ_РСПростой.УстановкаПодПогрузку <> ДАТАВРЕМЯ(1, 1, 1, 0, 0, 0)
И ВТ_РСПростой.ОкончаниеПогрузки <> ДАТАВРЕМЯ(1, 1, 1, 0, 0, 0)
ТОГДА РАЗНОСТЬДАТ(ВТ_РСПростой.УстановкаПодПогрузку, ВТ_РСПростой.ОкончаниеПогрузки, ЧАС)
ИНАЧЕ 0
КОНЕЦ КАК ВремяПогрузки,
ВТ_РСПростой.ПрибытиеДокументовПослеТаможирования КАК ПрибытияДокументовТаможирования,
ВТ_РСПростой.ВозвратПВст КАК СдачаНаСт,
ВЫБОР
КОГДА ВТ_РСПростой.ОкончаниеПогрузки <> ДАТАВРЕМЯ(1, 1, 1, 0, 0, 0)
И ВТ_РСПростой.ВозвратПВст <> ДАТАВРЕМЯ(1, 1, 1, 0, 0, 0)
ТОГДА РАЗНОСТЬДАТ(ВТ_РСПростой.ОкончаниеПогрузки, ВТ_РСПростой.ВозвратПВст, ЧАС)
ИНАЧЕ 0
КОНЕЦ КАК ВремяВозвратаНаСт,
ВЫБОР
КОГДА ВТ_РСПростой.ПрибытияВагона <> ДАТАВРЕМЯ(1, 1, 1, 0, 0, 0)
И ВТ_РСПростой.УстановкаПодВыгрузку <> ДАТАВРЕМЯ(1, 1, 1, 0, 0, 0)
И ВТ_РСПростой.ОкончаниеВыгрузки <> ДАТАВРЕМЯ(1, 1, 1, 0, 0, 0)
И ВТ_РСПростой.УстановкаПодПогрузку <> ДАТАВРЕМЯ(1, 1, 1, 0, 0, 0)
И ВТ_РСПростой.ОкончаниеПогрузки <> ДАТАВРЕМЯ(1, 1, 1, 0, 0, 0)
И ВТ_РСПростой.ВозвратПВст <> ДАТАВРЕМЯ(1, 1, 1, 0, 0, 0)
ТОГДА РАЗНОСТЬДАТ(ВТ_РСПростой.ПрибытияВагона, ВТ_РСПростой.УстановкаПодВыгрузку, ЧАС) + РАЗНОСТЬДАТ(ВТ_РСПростой.ОкончаниеВыгрузки, ВТ_РСПростой.УстановкаПодПогрузку, ЧАС) + РАЗНОСТЬДАТ(ВТ_РСПростой.УстановкаПодПогрузку, ВТ_РСПростой.ОкончаниеПогрузки, ЧАС) + РАЗНОСТЬДАТ(ВТ_РСПростой.ОкончаниеПогрузки, ВТ_РСПростой.ВозвратПВст, ЧАС)
ИНАЧЕ ВЫБОР
КОГДА ВТ_РСПростой.ПрибытияВагона <> ДАТАВРЕМЯ(1, 1, 1, 0, 0, 0)
И ВТ_РСПростой.УстановкаПодВыгрузку = ДАТАВРЕМЯ(1, 1, 1, 0, 0, 0)
И ВТ_РСПростой.ОкончаниеВыгрузки = ДАТАВРЕМЯ(1, 1, 1, 0, 0, 0)
И ВТ_РСПростой.УстановкаПодПогрузку <> ДАТАВРЕМЯ(1, 1, 1, 0, 0, 0)
И ВТ_РСПростой.ОкончаниеПогрузки <> ДАТАВРЕМЯ(1, 1, 1, 0, 0, 0)
И ВТ_РСПростой.ВозвратПВст <> ДАТАВРЕМЯ(1, 1, 1, 0, 0, 0)
ТОГДА РАЗНОСТЬДАТ(ВТ_РСПростой.УстановкаПодПогрузку, ВТ_РСПростой.ПрибытияВагона, ЧАС) + РАЗНОСТЬДАТ(ВТ_РСПростой.УстановкаПодПогрузку, ВТ_РСПростой.ОкончаниеПогрузки, ЧАС) + РАЗНОСТЬДАТ(ВТ_РСПростой.ОкончаниеПогрузки, ВТ_РСПростой.ВозвратПВст, ЧАС)
ИНАЧЕ ВЫБОР
КОГДА ВТ_РСПростой.ПрибытияВагона <> ДАТАВРЕМЯ(1, 1, 1, 0, 0, 0)
И ВТ_РСПростой.УстановкаПодВыгрузку <> ДАТАВРЕМЯ(1, 1, 1, 0, 0, 0)
И ВТ_РСПростой.ОкончаниеВыгрузки <> ДАТАВРЕМЯ(1, 1, 1, 0, 0, 0)
И ВТ_РСПростой.УстановкаПодПогрузку = ДАТАВРЕМЯ(1, 1, 1, 0, 0, 0)
И ВТ_РСПростой.ОкончаниеПогрузки = ДАТАВРЕМЯ(1, 1, 1, 0, 0, 0)
И ВТ_РСПростой.ВозвратПВст <> ДАТАВРЕМЯ(1, 1, 1, 0, 0, 0)
ТОГДА РАЗНОСТЬДАТ(ВТ_РСПростой.УстановкаПодВыгрузку, ВТ_РСПростой.ПрибытияВагона, ЧАС) + РАЗНОСТЬДАТ(ВТ_РСПростой.УстановкаПодВыгрузку, ВТ_РСПростой.ОкончаниеВыгрузки, ЧАС) + РАЗНОСТЬДАТ(ВТ_РСПростой.ОкончаниеПогрузки, ВТ_РСПростой.ВозвратПВст, ЧАС)
ИНАЧЕ ВЫБОР
КОГДА ВТ_РСПростой.ПрибытияВагона <> ДАТАВРЕМЯ(1, 1, 1, 0, 0, 0)
И ВТ_РСПростой.УстановкаПодВыгрузку = ДАТАВРЕМЯ(1, 1, 1, 0, 0, 0)
И ВТ_РСПростой.ОкончаниеВыгрузки = ДАТАВРЕМЯ(1, 1, 1, 0, 0, 0)
И ВТ_РСПростой.УстановкаПодПогрузку = ДАТАВРЕМЯ(1, 1, 1, 0, 0, 0)
И ВТ_РСПростой.ОкончаниеПогрузки = ДАТАВРЕМЯ(1, 1, 1, 0, 0, 0)
И ВТ_РСПростой.ВозвратПВст <> ДАТАВРЕМЯ(1, 1, 1, 0, 0, 0)
ТОГДА РАЗНОСТЬДАТ(ВТ_РСПростой.ПрибытияВагона, ВТ_РСПростой.ВозвратПВст, ЧАС)
ИНАЧЕ ВЫБОР
КОГДА ВТ_РСПростой.ПрибытияВагона <> ДАТАВРЕМЯ(1, 1, 1, 0, 0, 0)
И ВТ_РСПростой.УстановкаПодВыгрузку = ДАТАВРЕМЯ(1, 1, 1, 0, 0, 0)
И ВТ_РСПростой.ОкончаниеВыгрузки = ДАТАВРЕМЯ(1, 1, 1, 0, 0, 0)
И ВТ_РСПростой.УстановкаПодПогрузку = ДАТАВРЕМЯ(1, 1, 1, 0, 0, 0)
И ВТ_РСПростой.ОкончаниеПогрузки = ДАТАВРЕМЯ(1, 1, 1, 0, 0, 0)
И ВТ_РСПростой.ВозвратПВст = ДАТАВРЕМЯ(1, 1, 1, 0, 0, 0)
ТОГДА РАЗНОСТЬДАТ(ВТ_РСПростой.ПрибытияВагона, &ТекДата, ЧАС)
КОНЕЦ
КОНЕЦ
КОНЕЦ
КОНЕЦ
КОНЕЦ КАК ВсегоЧасовПростоя,
ВТ_РСПростой.ПринадлежностьВагона,
ВТ_РСПростой.НоменклатураПрибытие,
ВТ_РСПростой.НоменклатураОтправка,
ВТ_РСПростой.СостояниеВагона,
ВТ_РСПростой.ПростойПоКоманде
ИЗ
ВТ_РСПростой КАК ВТ_РСПростой