Форум: "Базы";
Текущий архив: 2003.06.26;
Скачать: [xml.tar.bz2];
ВнизПодскажите алгоритм Найти похожие ветки
← →
NataliK (2003-06-02 11:35) [0]Добрый день!
Проблема такова есть Парадоксовская база
F1 F2 f3
6 5 (5+3)*X
6 3 (5+3)*X
8 2 (2+1)*Y
8 1 (2+1)*Y
что бы определить F3 надо знать сумму f2 по одной F1.
Школьнай вопрос где лучше хранить эту сумму f2 а запомнить ее наверное надо Получить ее я расчитываю через SQL запрос.
← →
McSimm2 (2003-06-02 11:39) [1]А почему результат вычисления нельзя прямо в поле f3 сохранить - высчитывай и записывай...
← →
Sandman25 (2003-06-02 11:42) [2]Если сумму нужно именно хранить, то напрашивается отдельная таблица
типа
f1 f2
6 8
8 3
А если извлекать динамически, то
select sum(f2), f1
from t1
group by f1
← →
Sandman25 (2003-06-02 11:45) [3]McSimm2 (02.06.03 11:39)
Тогда при изменении F2 в одной записи придется изменять F3 в куче записей с тем же id из F1. Что не есть хорошо, особенно при многопользовательской работе. Нет нормализации.
← →
NataliK (2003-06-02 11:50) [4]Можно, но я запуталась < т.е
Я должна пробежаться по Таблице выполнить Sql запрос и посчитать F3 . Мне кажется, можно как-то проще.Может с Lookup
посчитать в цикле или еще как-нибудь
← →
Sandman25 (2003-06-02 11:59) [5]
var p: pointer;
begin
with query1 do
begin
close;
sql.text := "select count(*) from table1 where f1 = :f1";
prepare;
with table1 do
begin
p := getbookmark;
disablecontrols;
try
first;
while not eof do
begin
query.params[0].asInteger := table1f1.asInteger;
query.open;
... // обработка значения
query.close;
next;
end;
finally
gotobookmark(p);
enablecontrols;
end;
end;
← →
NataliK (2003-06-02 12:04) [6]Спасибо! Сейчас попробую с закладочками,может именно этот выход подойдет
Страницы: 1 вся ветка
Форум: "Базы";
Текущий архив: 2003.06.26;
Скачать: [xml.tar.bz2];
Память: 0.45 MB
Время: 0.028 c