|
37 Кб. |
|
| Доброго времени суток. Появилась такая задачка..
Есть база Test, которая линкуется с другой базой с кучей запросов и таблиц. Из 2й базы запросом по интервалу (т.е по дате) (интервал задается в форме int ) берутся значения по двум таблицам и прилетают в форму "Суточные данные по теплу".
все это замечательно работает.. Главный вопрос в том что там есть поле W3, в котором указываются показания счетчика, которые снимаются каждый день.
Подскажите как можно сделать так что бы в форме "Суточные данные по теплу" показания W3 пересчитывались по принципу
W31 = W3 (сегодняшнее) - W3(вчерашнее)
|
Прикрепил базу для ознакомления | |
|
| |
|
|
|
| Вот это посмотрите
http://hiprog.com/index.php?option=com_content&task=view&id=369
Это не совсем решение, но суть примерно та же | |
|
| |
|
31 Кб. |
|
| вот посмотри - добавил Запрос1 и переделел результирующий запрос - Суточные данные по теплу. вроде добавляет данные нужные.
но работает в том случае если данные идут потоком, если есть разрывы - то надо либо запросом изголяться либо просто написать функцию которая получает дату текущей записи и выозвращает даные первой меньшей даты и эту функцию воткнуть в результирующий запрос | |
|
| |
|
120 Кб. |
|
| И мой пример.
Только поправьте пути к таблицам, через диспетчер связанных таблиц | |
|
| |
|
|
|
| Универсальная постановка и решение
Есть таблица 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;
|
| |
|
| |