powered by simpleCommunicator - 2.0.60     © 2026 Programmizd 02
Целевая тема:
Создать новую тему:
Автор:
Закрыть
Цитировать
Форумы / Sybase ASA, ASE, IQ [игнор отключен] [закрыт для гостей] / Определение момента разрыва цепочки пробегов
5 сообщений из 5, страница 1 из 1
Определение момента разрыва цепочки пробегов
    #34142471
Здравствуйте. Моя задача из области учета параметров эксплуатации подвижного состава. Учет работы автомобиля ведется в путевых листах. В каждом путевом листе фиксируется входящий и исходящий километраж. В идеале входящий километраж последующей путевки должен совпадать с исходящим километражом предыдущей путевки. В нашем случае такой автоматический перенос исходящего километража в последующую путевку выполняет программа. Но тем не менее в результате действия человеческого фактора (например, ввод путевок в базу не в порядке их выдачи) цепочка пробегов сбивается. Требуется в Sybase ASA 8 составить запрос, в котором выбирались бы только те путевки по каждой единице техники, в которых произошел разрыв цепочки.
...
Рейтинг: 0 / 0
Определение момента разрыва цепочки пробегов
    #34142479
Бабичев Сергей
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
В общем случае, при решении задачи об интервалах, можно выделить как минимум три класса интервалов (отрезков):

Интервалы не имеют ни одной общей точки, то есть, непересекающиеся интервалы.
В разрезе Вашей постановки задачи – это как раз то, что Вы хотите получить в результате работы запроса. (Как пример: 1..5 и 7..10)


Интервалы, имеющие ровно одну общую точку, то есть начало одного диапазона совпадает с окончанием другого. В разрезе Вашей задачи это вполне нормальная ситуация, имена та, к которой и нужно стремиться. (Как пример: 1..5 и 5..8)


Интервалы имеют более одной общей точки, то есть фактически являются пересекающимися. (Как пример: 5..10 и 8..15)Что делать с такими интервалами – совершенно непонятно. В Вашей постановке об этом ничего не сказано.

Кроме того, если два последовательных интервала не имеют общее точки, то какой из них выдать? Или в этом случае нужно выдать оба интервала?
...
Рейтинг: 0 / 0
Определение момента разрыва цепочки пробегов
    #34144136
Для комплексного решения задачи интерес представляют интервалы первого и третьего классов. Лучше выдавать пары последовательных интервалов.
...
Рейтинг: 0 / 0
Определение момента разрыва цепочки пробегов
    #34144690
White Owl
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Ну если навскидку, то имея таблицу ID машины, ID поездки, начальное и конечное показания спидометра, можно сделать что-то вроде
Код: plaintext
1.
2.
3.
select a.TruckId, a.TripId, a.StartMileage, a.EndMileage, 
  (select min(StartMileage) from TripTable b where a.TruckId=b.TruckId and b.StartMileage>a.StartMileage) - a.EndMileage as Gap
from TripTable a
where Gap<> 0 ;

---
http://www.rusug.ru] Портал русскоязычной группы пользователей Sybase
...
Рейтинг: 0 / 0
Определение момента разрыва цепочки пробегов
    #34150804
DIGITALPRO
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
а, я бы слелал так:
ID машины, ID поездки, CAR_SPID (конечное показания спидометра)

а километраж уже

Код: plaintext
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
11.
SELECT
id,
id_car,
id_way,
CAR_SPID - (Select q.CAR_SPID 
                 From t1 q 
                 Where q.DT = (Select max(e.id)
                                      From t1 e 
                                     Where e.id_car = t1.id_car
                                     and e.id < t1.id))  as way_spid
From 
t1

и нет ни какого чел.фактора
...
Рейтинг: 0 / 0
5 сообщений из 5, страница 1 из 1
Форумы / Sybase ASA, ASE, IQ [игнор отключен] [закрыт для гостей] / Определение момента разрыва цепочки пробегов
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


Просмотр
0 / 0
Close
Debug Console [Select Text]