Форум 1С
Программистам, бухгалтерам, администраторам, пользователям
Задай вопрос - получи решение проблемы
20 мая 2024, 23:46

Найти ошибку в запросе

Автор aleeex, 03 июл 2016, 17:18

0 Пользователей и 1 гость просматривают эту тему.

aleeex

Здравствуйте, помогите пожалуйста решить/найти ошибку.
Задание:

ЦитироватьДля каждой компании, перевозившей пассажиров, подсчитать время, которое провели в полете самолеты с пассажирами.
Вывод: Авиакомпания (Наименование, тип Строка), КоличествоМинут (тип Число). Упорядочить по    "Авиакомпания".   
Схема БД приложена.

Пробовал решить так:

ВЫБРАТЬ
рс.НомерРейса,
спр.КодАвиакомпании,
спр.КодАвиакомпании.Наименование как Авиакомпания,
спр.ВремяОтправления,
спр.ВремяПрибытия

поместить вт

из РегистрСведений.ПерелетыПассажиров как рс
левое соединение справочник.Рейсы как спр
по рс.НомерРейса = спр.Ссылка

;
выбрать

вт.Авиакомпания,
Сумма(выбор когда РАЗНОСТЬДАТ(вт.ВремяОтправления , вт.ВремяПрибытия, минута) > 0
тогда
РАЗНОСТЬДАТ(вт.ВремяОтправления , вт.ВремяПрибытия, минута)
Иначе
РАЗНОСТЬДАТ(вт.ВремяОтправления , вт.ВремяПрибытия, минута)  + 1440
конец) как КоличествоМинут

из вт как вт

сгруппировать по
вт.Авиакомпания

упорядочить по вт.Авиакомпания


К сожалению правильный вариант, не совпадает с моим. :( Помогите, пожалуйста. В чем может быть ошибка?

LexaK

а у вас ошибка в задании!!! :)

Наименование (строка50) не может быть Ссылкой справочника! :befhbt:

это задание, наверно на внимательность, так преподу и скажите!

см.рис.
Добавлено: 04 июл 2016, 09:45


а по поводу ошибки, вы неправильно время считаете.
У вас Начало и конец рейса задан (Дата,состав(Время))
Поэтому если рейс начинается в одном дне, например в 23:00
а заканчивается в следующем дне, например 05:00

то по вашей схеме
05:00 (конец рейса) - 23:00 (начало рейса) получится  - (минус) 18 часов !!!

поэтому для расчета времени полета вам надо учитывать смену суток! ну а это же элементарно! так ведь? :)

Добавлено: 04 июл 2016, 09:52


упс. из-за непривычной расскраски кода, не заметил, что уже этот учет смены суток есть.

Добавлено: 04 июл 2016, 10:04


мне кажется вы даты местами перепутали в функции разностьдат

такой запрос
выбрать разностьдат(ДатаВремя(1,1,1,5,0,0), ДатаВремя(1,1,1,13,0,0),час)

возвращает 8 часов

т.е. сначала время начала полета, затем окнчания полета


если помогло нажмите: Спасибо!

Теги:

Похожие темы (5)

Рейтинг@Mail.ru

Поиск