Поиск:

Ответ в темуСоздание новой темы Создание опроса
> запрос для сравнения разницы 
:(
    Опции темы
lisiyandy
Дата 8.9.2010, 08:32 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Новичок



Профиль
Группа: Участник
Сообщений: 7
Регистрация: 8.9.2010
Где: Россия, Пенза

Репутация: нет
Всего: нет



в таблице (Access через ADO)есть дата поездок, номер авто, количество топлива на начало поездки и количество топлива на конец поездки. Как сравнить разницу количество топлива на начала новой поездки с количеством топлива конечной(предыдущей) поездки, по дате и по авто, по количеству топлива сравнивать смысла не имеет, так как в момент простоя его могут элементарно слить smile  . Первоначальная выборка произведена по номеру авто...

Это сообщение отредактировал(а) lisiyandy - 8.9.2010, 09:00
PM MAIL   Вверх
pseud
Дата 8.9.2010, 09:13 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Экспёрт Тыдыщ
***


Профиль
Группа: Завсегдатай
Сообщений: 1175
Регистрация: 18.5.2007
Где: Минск, Беларусь

Репутация: 16
Всего: 40



Код

поле_пять_тыщ_семьсот_сорок_семь минус пыщ_пыщ

названия б таблиц хоть и полей...


--------------------
Испытание чужого терпения можно считать успешным, если оно лопнуло...
PM MAIL   Вверх
Deniz
Дата 8.9.2010, 09:13 (ссылка) |    (голосов:1) Загрузка ... Загрузка ... Быстрая цитата Цитата


Эксперт
***


Профиль
Группа: Завсегдатай
Сообщений: 1251
Регистрация: 16.10.2004
Где: Новый Уренгой

Репутация: 8
Всего: 44



Как-то так:
Код
select *
from table t1
  join  table t2 on t1.номер = t2.номер and t1.дата = (select max(дата) from table where номер = t1.номер and дата < t1.дата)
where t1.топливо_начало <> t2.топливо_конец



--------------------
"Для того чтобы сделать шаг вперед, достаточно пинка сзади" (с)
PM ICQ   Вверх
pseud
Дата 8.9.2010, 09:21 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Экспёрт Тыдыщ
***


Профиль
Группа: Завсегдатай
Сообщений: 1175
Регистрация: 18.5.2007
Где: Минск, Беларусь

Репутация: 16
Всего: 40



Цитата(Deniz @  8.9.2010,  09:13 Найти цитируемый пост)
Как-то так

имхо наверно так:
Код

select 
  (t2.топливо_конец - t1.топливо_начало) as разница
from 
  table t1
  inner join  table t2 on t1.номер = t2.номер and t1.дата = (select max(дата) from table where номер = t1.номер and дата < t1.дата)

с аксесс ен работал, но мне кажется он этого не съест

Это сообщение отредактировал(а) pseud - 8.9.2010, 09:22


--------------------
Испытание чужого терпения можно считать успешным, если оно лопнуло...
PM MAIL   Вверх
lisiyandy
Дата 8.9.2010, 09:32 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Новичок



Профиль
Группа: Участник
Сообщений: 7
Регистрация: 8.9.2010
Где: Россия, Пенза

Репутация: нет
Всего: нет



таблица mmodule
поля:
 дата начала поездки - datebegintrip
 дата окончания поездки - dateendtrip
 бортовой номер - boardnumber
 топливо на начало поездки - fuelbegintrip
 топливо на конец поездки - fuelendtrip

Добавлено через 1 минуту и 55 секунд
не переворил :(

Добавлено через 11 минут и 10 секунд
данные выбраные по номеру:

30/08/2010   30/08/2010     458    250    138
25/08/2010   26/08/2010     458    163    273

PM MAIL   Вверх
pseud
Дата 8.9.2010, 09:44 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Экспёрт Тыдыщ
***


Профиль
Группа: Завсегдатай
Сообщений: 1175
Регистрация: 18.5.2007
Где: Минск, Беларусь

Репутация: 16
Всего: 40



Цитата(lisiyandy @  8.9.2010,  09:32 Найти цитируемый пост)
не переворил :( 

а так:
Код

select 
  (t2.fuelendtrip - t1.fuelbegintrip) as zap_zarap
from 
  mmodule t1
  inner join  mmodule t2 on t1.boardnumber = t2.boardnumber 
where
  t1.datebegintrip = (
    select 
      max(t3.datebegintrip) 
    from 
      mmodule t3 
    where 
      t3.boardnumber = t1.boardnumber 
      and t3.datebegintrip< t1.datebegintrip)


Это сообщение отредактировал(а) pseud - 8.9.2010, 09:44


--------------------
Испытание чужого терпения можно считать успешным, если оно лопнуло...
PM MAIL   Вверх
lisiyandy
Дата 8.9.2010, 09:45 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Новичок



Профиль
Группа: Участник
Сообщений: 7
Регистрация: 8.9.2010
Где: Россия, Пенза

Репутация: нет
Всего: нет



как раз заметно что произошел слив топлива
PM MAIL   Вверх
pseud
Дата 8.9.2010, 09:48 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Экспёрт Тыдыщ
***


Профиль
Группа: Завсегдатай
Сообщений: 1175
Регистрация: 18.5.2007
Где: Минск, Беларусь

Репутация: 16
Всего: 40



Цитата(lisiyandy @  8.9.2010,  09:45 Найти цитируемый пост)
как раз заметно что произошел слив топлива 

что с запросом? переворил?


--------------------
Испытание чужого терпения можно считать успешным, если оно лопнуло...
PM MAIL   Вверх
lisiyandy
Дата 8.9.2010, 10:09 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Новичок



Профиль
Группа: Участник
Сообщений: 7
Регистрация: 8.9.2010
Где: Россия, Пенза

Репутация: нет
Всего: нет



немного не так....

сравнить последнюю и предпоследнюю запись, т.е. 
30/08 будет последней, а 25/08 будет предпоследней
25/08 последняя, а 12/08 предпоследняя...


30/08/2010 30/08/2010 458 250 138 ----| тут произведен слив топлива
25/08/2010 26/08/2010 458 163 273 ----| т.е. остаток получается меньше
12/08/2010 12/08/2010 458 200 163
11/08/2010 11/08/2010 458 050 200
05/08/2010 06/08/2010 458 328 050


забыл главное новая дата она всегда известна, можно предположить, 
что ее будет вводить пользователь при занесении данных с модуля памяти.
т.е. дату последней поездки мы знаем точно

Добавлено через 2 минуты и 5 секунд
запрос работает, только выводит все записи, а не последнюю с предпоследней... 
PM MAIL   Вверх
pseud
Дата 8.9.2010, 10:13 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Экспёрт Тыдыщ
***


Профиль
Группа: Завсегдатай
Сообщений: 1175
Регистрация: 18.5.2007
Где: Минск, Беларусь

Репутация: 16
Всего: 40



Цитата(lisiyandy @  8.9.2010,  10:09 Найти цитируемый пост)
запрос работает, только выводит все записи, а не последнюю с предпоследней...  

запрос выводит все сливы (сливы не путать с яблоками)  smile

Добавлено через 2 минуты и 34 секунды
то ли лыжи не едут, то ли я торможу...
судя по твоим данным за время пути местами в тачке количество топлива увеличивается

Добавлено через 5 минут и 31 секунду
ну и можно не ждать когда разжуют совсем, а изобразить хоть и свою работу....
Код

select 
  (t2.fuelendtrip - t1.fuelbegintrip) as zap_zarap
from 
  mmodule t1
  inner join  mmodule t2 on t1.boardnumber = t2.boardnumber 
where
  t1.datebegintrip = (
    select 
      max(t3.datebegintrip) 
    from 
      mmodule t3 
    where 
      t3.boardnumber = t1.boardnumber 
      and t3.datebegintrip< t1.datebegintrip)
  and t1.datebegintrip = :дату_последней_поездки_мы_знаем_точно



--------------------
Испытание чужого терпения можно считать успешным, если оно лопнуло...
PM MAIL   Вверх
lisiyandy
Дата 8.9.2010, 10:25 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Новичок



Профиль
Группа: Участник
Сообщений: 7
Регистрация: 8.9.2010
Где: Россия, Пенза

Репутация: нет
Всего: нет



увеличение это запрвки, но они то как раз и не учитываются... это отдельная тема smile
PM MAIL   Вверх
lisiyandy
Дата 8.9.2010, 10:50 (ссылка)    | (голосов:2) Загрузка ... Загрузка ... Быстрая цитата Цитата


Новичок



Профиль
Группа: Участник
Сообщений: 7
Регистрация: 8.9.2010
Где: Россия, Пенза

Репутация: нет
Всего: нет



SELECT
   (
      select fuelendtrip
      from memorymodule as t
      where
        t.dateendtrip < memorymodule.dataendtrip
        and t.boardnumber =  memorymodule.boardnumber
      order by
        t.dateendtrip desc
    ) as prev_fuelendtrip
FROM memorymodule WHERE
  memorymodule.datebegintrip = #8/30/2010#


PM MAIL   Вверх
pseud
Дата 8.9.2010, 10:58 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Экспёрт Тыдыщ
***


Профиль
Группа: Завсегдатай
Сообщений: 1175
Регистрация: 18.5.2007
Где: Минск, Беларусь

Репутация: 16
Всего: 40



о_О
что это?
тема то решена? 


--------------------
Испытание чужого терпения можно считать успешным, если оно лопнуло...
PM MAIL   Вверх
lisiyandy
Дата 8.9.2010, 11:00 (ссылка)    | (голосов:1) Загрузка ... Загрузка ... Быстрая цитата Цитата


Новичок



Профиль
Группа: Участник
Сообщений: 7
Регистрация: 8.9.2010
Где: Россия, Пенза

Репутация: нет
Всего: нет



неа ... в этом запросе как раз проблема.... разницу не выводит... :(... то бишь в обще не показывает...  мозг кипит :(
PM MAIL   Вверх
pseud
Дата 8.9.2010, 11:24 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Экспёрт Тыдыщ
***


Профиль
Группа: Завсегдатай
Сообщений: 1175
Регистрация: 18.5.2007
Где: Минск, Беларусь

Репутация: 16
Всего: 40



Цитата(lisiyandy @  8.9.2010,  11:00 Найти цитируемый пост)
неа ... в этом запросе как раз проблема.... разницу не выводит... :(... то бишь в обще не показывает...  мозг кипит :( 

при чем здесь этот запрс, если есть тот?



--------------------
Испытание чужого терпения можно считать успешным, если оно лопнуло...
PM MAIL   Вверх
  
Ответ в темуСоздание новой темы Создание опроса
Правила форума "Delphi: Базы данных и репортинг"
Vit
Петрович

Запрещено:

1. Публиковать ссылки на вскрытые компоненты

2. Обсуждать взлом компонентов и делиться вскрытыми компонентами


Обязательно указание:

1. Базы данных (Paradox, Oracle и т.п.)

2. Способа доступа (ADO, BDE и т.д.)


  • Литературу по Дельфи обсуждаем здесь
  • Действия модераторов можно обсудить здесь
  • С просьбами о написании курсовой, реферата и т.п. обращаться сюда
  • Вопросы по реализации алгоритмов рассматриваются здесь
  • 90% ответов на свои вопросы можно найти в DRKB (Delphi Russian Knowledge Base) - крупнейшем в рунете сборнике материалов по Дельфи
  • Вопросы по SQL и вопросы по базам данных не связанные с Дельфи задавать здесь

FAQ раздела лежит здесь!


Если Вам помогли и атмосфера форума Вам понравилась, то заходите к нам чаще! С уважением, Vit, Петрович.

 
0 Пользователей читают эту тему (0 Гостей и 0 Скрытых Пользователей)
0 Пользователей:
« Предыдущая тема | Delphi: Базы данных и репортинг | Следующая тема »


 




[ Время генерации скрипта: 0.0511 ]   [ Использовано запросов: 22 ]   [ GZIP включён ]


Реклама на сайте     Информационное спонсорство

 
По вопросам размещения рекламы пишите на vladimir(sobaka)vingrad.ru
Отказ от ответственности     Powered by Invision Power Board(R) 1.3 © 2003  IPS, Inc.