Форум 1С
Форум 1С
Программистам. Бухгалтерам. Администраторам. Пользователям
Задай вопрос - получи решение проблемы. Без троллинга и флуда.
14 Июн 2021, 09:29
Добро пожаловать, Гость. Пожалуйста, войдите или зарегистрируйтесь.
Не получили письмо с кодом активации?
МультиВход
 
collapse

Автор Тема: Найти ошибку в запросе  (Прочитано 762 раз)

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

Оффлайн aleeex

  • *
  • Регистрация: 2016-07-03
  • Сообщений: 2
  • РЕПУТАЦИЯ: 0
  • Профессия: Ученик 1С
Здравствуйте, помогите пожалуйста решить/найти ошибку.
Задание:

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

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

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

поместить вт

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

;
выбрать

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

из вт как вт

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

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

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


Оффлайн LexaK

  • *****
  • Регистрация: 2012-05-16
  • Сообщений: 2564
  • РЕПУТАЦИЯ: 820
  • КПД: 32%
  • Профессия: Программист 1С
а у вас ошибка в задании!!! :)

Наименование (строка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 часов

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


Помогло? - Нажми СПАСИБО (под аватаром) !!!
                       :)

Последний раз редактировалось: LexaK; 04 Июл 2016, 10:04. Причина: Объединение сообщений


Теги:
 


* Живое общение

Не устроил ответ?

Зарегистрируйся и задай свой вопрос. Живое общение приносит результат намного быстрее.


Зарегистрироваться

* Реклама

* Поиск

* Последние задачи на разработку (фриланс)

* Последние вакансии

* Том 10 авторов за месяц

Геннадий ОбьГЭС Геннадий ОбьГЭС
72 Сообщений
LexaK
62 Сообщений
antoneus antoneus
31 Сообщений
Ивашка
27 Сообщений
KATERINA 861
23 Сообщений
neek666
22 Сообщений
SSC
15 Сообщений
alexandr_ll
15 Сообщений
Алексей_1985_06
11 Сообщений
pouyo
8 Сообщений

* Кто онлайн

  • Точка Гостей: 231
  • Точка Скрытых: 0
  • Точка Пользователей: 1
  • Точка Сейчас на форуме:

* Облако тэгов

* Инструменты

* Дополнительно

Поиск