Top.Mail.Ru
Мастера DELPHI, Delphi programming community Титульная страница Поиск, карта сайта Написать письмо 
| Новости | Поиск | FAQ | Статьи | Книги | Новости VCL |
| Форумы ЧАТ | Орешник | KOL и MCK |
Форумы -» Основная («Начинающим»)/ Базы / WinAPI / Компоненты / Сети / Media / Игры / Corba и COM / KOL / FreePascal / .Net / Прочее / RSDN.ORG

« предыдущая ветвь | форум | следующая ветвь »

Помогите с ХП [D6, FireBird 1.5]


Koala ©   (2004-08-11 12:16:00) 

Есть таблица:
№   Дата       ПокСпВыезд  ПокСпЗаезд  ГСМВыезд  ГСМЗаезд....
---------------------------------------------------------------
1  19.07.04     244790     244865       12,7    80,3
2  19.07.04     244865      244895      80,3     74,5
3  19.07.04     244895      244970      74,5     53,2
4  19.07.04     244970       245015     53,2     83,2
5  20.07.04     245015     245065       83,2    76,5
6  20.07.04     245065       245130     76,5     61,4
и т.д.

групирую по дням и вывожу результаты пробега автомобиля и расход топлива но не знаю как сделать выбор первого и последнего значения за день  они выделены....
Обьясняю почему именно так, а не Min или Max по полям дело в том что например у "Газели" спидометр заканчивается на 99 999 затем обнуляется, или водитель получает на руки талоны на бензин для поездки в коммандировку, и по дороге еще заправляется за наличку и т.д.

За ранее благодарен....


Deniz   (2004-08-12 06:44:00) [1]

Для выбора конкретного авто добавь в where условия, то же самое с периодом. Как что списывается по нормам я не знаю, поэтому не знаю что конкретно тебе надо получить на выходе, и ты не говоришь.


Koala   (2004-08-11 18:27:00) [2]


> Deniz ©   (11.08.04 14:57) [3]
> А № присутствует в БД? Или это для наглядности?
> Если вместо № есть что-то типа ID и табличка заполняется
> по порядку(как в примере)
>

Есть ID поле и заполняется по порядку, только в этой таблице хранятся данные за все автомобили, и выборку надо делать за определенный период с рачетом всех затрат по нормам списания топлива и расчетом надбавок (док. Заправочная ведомость) по конкретному автомобилю


Жук   (2004-08-11 15:11:00) [3]

select max(ПокСпЗаезд),min(ПокСпЗаезд)
from MyTable
where Дата="01.01.2001"
into :ma, :mi;
if (ma>90000) and (mi<10000)
 then begin
        select max(ПокСпЗаезд)
        from MyTable
        where Дата="01.01.2001" and ПокСпЗаезд<10000
        into :ma
      end;


Deniz   (2004-08-11 14:57:00) [4]

А № присутствует в БД? Или это для наглядности?
Если вместо № есть что-то типа ID и табличка заполняется по порядку(как в примере), то первый выезд за день можно вытащить в виде
select * from table t1
where t1.id in
(select first 1 t2.id from table t2 where t2.Дата = t1.Дата order by id)

и соот-но последний:
select * from table t1
where t1.id in
(select first 1 t2.id from table t2 where t2.Дата = t1.Дата order by id desc)


Наталия   (2004-08-11 14:52:00) [5]

Тогда кроме даты храни ещё и время


DBGrid   (2004-08-11 12:59:00) [6]

а при чем тут ХР??


Наверх

Титульная страница Поиск, карта сайта Написать письмо