Главная страница
    Top.Mail.Ru    Яндекс.Метрика
Форум: "Базы";
Текущий архив: 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.46 MB
Время: 0.025 c
14-84646
Janus
2003-05-28 17:43
2003.06.26
Дизассемблер


7-84791
Дельфятник
2003-04-18 11:05
2003.06.26
Какие события надо ловить чтобы программа реагировала на то, (+)


3-83886
Uran
2003-06-02 16:48
2003.06.26
DBF в рантайм.


4-84849
Xeon
2003-04-27 08:26
2003.06.26
Запуск просторонних приложений.


14-84732
Rafik
2003-06-03 14:09
2003.06.26
Матрица - разочорование





Afrikaans Albanian Arabic Armenian Azerbaijani Basque Belarusian Bulgarian Catalan Chinese (Simplified) Chinese (Traditional) Croatian Czech Danish Dutch English Estonian Filipino Finnish French
Galician Georgian German Greek Haitian Creole Hebrew Hindi Hungarian Icelandic Indonesian Irish Italian Japanese Korean Latvian Lithuanian Macedonian Malay Maltese Norwegian
Persian Polish Portuguese Romanian Russian Serbian Slovak Slovenian Spanish Swahili Swedish Thai Turkish Ukrainian Urdu Vietnamese Welsh Yiddish Bengali Bosnian
Cebuano Esperanto Gujarati Hausa Hmong Igbo Javanese Kannada Khmer Lao Latin Maori Marathi Mongolian Nepali Punjabi Somali Tamil Telugu Yoruba
Zulu
Английский Французский Немецкий Итальянский Португальский Русский Испанский