![]() |
| ||
|
|
Новости |
Поиск |
FAQ |
Статьи |
Книги |
Новости VCL
| | Форумы ЧАТ |
Орешник |
|
| |||
| |||
« предыдущая ветвь | форум | следующая ветвь »
СВЯЗЫВАНИЕ ДВУХ ТАБЛИЦ PARADOX [D6, Paradox]
prof © (2003-05-05 10:14:00)Помогите. Нужно взяь данные из 10 строк (в каждой строке только одна ячейка)таблици1 и суммировав их вставить в одну из строк таблици2
prof (2003-05-05 12:01:00) [1]все работает спасибо за подддержку
Соловьев (2003-05-05 11:55:00) [2]
with Table1 do
begin
Active := true;
First;
Sum := 0;
while no Eof do
begin
Sum := Sum + FieldByName("Sumfield").AsInteger;
Next;
end;
end;
With Table2 do
begin
Active := true;
Insert;
FieldByName("Sum").AsInteger := Sum;
Post;
end;
prof (2003-05-05 11:53:00) [3]все
Соловьев (2003-05-05 11:47:00) [4]тебе все записи нужно просумировать? или только часть удовлетворяющую условиям?
prof (2003-05-05 11:40:00) [5]Соловьев
Sorry, но я с базами в первый раз работаю так-что пожалуйста обьясните "//Должен быть подключен индекс, который вынесет эти 10 строк вперед"
Я взял упрощенную модель:
TAB1 TAb2
Sumfield Sum
22 490
222
123
123
так должно быть , но получается только
TAB2
Sum
22
,а если имеется в виду первичный(вторичный) индекс ,то с ним вообще не работает.
Соловьев (2003-05-05 10:39:00) [6]
with Table1 do
begin
Active := true;
First;
//Должен быть подключен индекс, который вынесет эти 10 строк вперед
Sum := 0;
Count := 0;
repeat
Inc(Count);
Sum := Sum + FieldByName("Sumfield").AsInteger;
Next;
until Count<=10;
end;
end;
With Table2 do
begin
Active := true;
Insert;
FieldByName("Sum").AsInteger := Sum;
Post;
end;
Но лучше что-бы ты с 10 как-то поределился, так как такой подход не верен и чреват... Лучше когда есть условие