Главная страница
    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.45 MB
Время: 0.035 c
14-84669
Jurd
2003-06-08 17:03
2003.06.26
Где взять компоненту?


1-84161
Aleksandr
2003-06-11 15:29
2003.06.26
Что надо сделать для


1-84365
Scorpx
2003-06-16 21:10
2003.06.26
Программное присвоение события.


1-84121
Sliften
2003-06-10 09:13
2003.06.26
навигация по ENTER


14-84753
Начинающий скриптер
2003-06-06 10:06
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
Английский Французский Немецкий Итальянский Португальский Русский Испанский