Rambler's Top100
Форум: MS ACCESSVBVBA MS OfficeMS SQL server
Новые сообщения: 0000

Форум: MS ACCESS

Вопросы связанные с MS ACCESS

Обновить визитку
Участники «Online»
Все участники

 
 

Доброго времени суток, Посетитель!

вид форума:
Линейный форум Структурный форум

тема: Рассчет разницы показаний счетчика. (access 2003)
 
 автор: Ruha86   (21.12.2010 в 20:02)   личное сообщение
37 Кб.
 
 

Доброго времени суток. Появилась такая задачка..
Есть база Test, которая линкуется с другой базой с кучей запросов и таблиц. Из 2й базы запросом по интервалу (т.е по дате) (интервал задается в форме int ) берутся значения по двум таблицам и прилетают в форму "Суточные данные по теплу".
все это замечательно работает.. Главный вопрос в том что там есть поле W3, в котором указываются показания счетчика, которые снимаются каждый день.
Подскажите как можно сделать так что бы в форме "Суточные данные по теплу" показания W3 пересчитывались по принципу
W31 = W3 (сегодняшнее) - W3(вчерашнее)


Прикрепил базу для ознакомления

  Ответить  
 
 автор: osmor   (22.12.2010 в 09:24)   личное сообщение
 
 

Вот это посмотрите
http://hiprog.com/index.php?option=com_content&task=view&id=369
Это не совсем решение, но суть примерно та же

  Ответить  
 
 автор: kot_k_k   (22.12.2010 в 09:43)   личное сообщение
31 Кб.
 
 

вот посмотри - добавил Запрос1 и переделел результирующий запрос - Суточные данные по теплу. вроде добавляет данные нужные.
но работает в том случае если данные идут потоком, если есть разрывы - то надо либо запросом изголяться либо просто написать функцию которая получает дату текущей записи и выозвращает даные первой меньшей даты и эту функцию воткнуть в результирующий запрос

  Ответить  
 
 автор: Balu   (22.12.2010 в 11:00)   личное сообщение
120 Кб.
 
 

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

  Ответить  
 
 автор: Дядя Федор   (22.12.2010 в 13:41)   личное сообщение
 
 

Универсальная постановка и решение

Есть таблица tbl1
id name date w
1 1 13.12.2010 1
2 2 14.12.2010 5
3 3 15.12.2010 7
4 4 16.12.2010 9
5 5 17.12.2010 11
6 6 18.12.2010 20
Построить запрос с разницей между датами значения w (поле ww)

Запрос


SELECT p1.name AS NNN, (SELECT last([W]) FROM Tbl1 p WHERE p.date< p1.date) AS wlast, p1.w, [w]-[wlast] AS ww
FROM Tbl1 AS p1
ORDER BY p1.name;


Результат

NNN wlast w ww
1 1
2 1 5 4
3 5 7 2
4 7 9 2
5 9 11 2
6 11 20 9


пс табла упорядочена по датам иначе

SELECT p1.name AS NNN, p1.date, (SELECT last([w]) FROM Tbl1 p WHERE p.date< p1.date) AS wlast, p1.w, [w]-[wlast] AS ww
FROM Tbl1 AS p1
ORDER BY p1.date;

  Ответить  
HiProg.com - Технологии программирования
Rambler's Top100 TopList