Подсчёт Суммы По Полю Без Sql

  • Автор темы Автор темы ZMihail
  • Дата начала Дата начала
Z

ZMihail

Есть две таблицы (ClientDataSet). Первая, назовём её (FIOT) с первичным ключом (ID) и тектовым
полем (Fio)- где записываются фамилии. Вторая, назавём её (SUMT) c ключевым полем (FIOID), куда записываются
числовые данные из поля (ID) таблицы (FIO), второе числовое поле (SUM), где находятся суммы по кождой фамилии
из первой таблицы. Каждая фамилия имеет много строк из таблицы (SUMT). Нужно посчитать суммы по каждой
фамилии и вывести этот результат в ListBox. Запросы в этих таблицах не работают.

Добавлено: procedure TForm1.Button7Click(Sender: TObject);
Var summ: integer;
begin
t1.Filter:= 'FIOID='+ fiot.FieldByName('ID').AsString;
t1.Filtered:=true;
summ:=0;

while not t1.Eof do
begin
t1.Next;
while not fiot.Eof do
Begin
summ:=summ+ t1.FieldByName('sob').asinteger;
ListBox1.Items.Add(fiot.FieldByName('Fio').AsString+ ': '+ IntToStr(summ));
fiot.Next;
end;
end;
end;
 
Есть две таблицы (ClientDataSet). Первая, назовём её (FIOT) с первичным ключом (ID) и тектовым
полем (Fio)- где записываются фамилии. Вторая, назавём её (SUMT) c ключевым полем (FIOID), куда записываются
числовые данные из поля (ID) таблицы (FIO), второе числовое поле (SUM), где находятся суммы по кождой фамилии
из первой таблицы. Каждая фамилия имеет много строк из таблицы (SUMT). Нужно посчитать суммы по каждой
фамилии и вывести этот результат в ListBox. Запросы в этих таблицах не работают.
Честно говоря... не совсем я понял как у Вас там всё организовано...
Возможно Вы имели в виду вот это?
Код:
procedure TForm1.Button1Click(Sender: TObject);
var
summ: integer;
begin
fiot.First;
while not fiot.Eof do
begin
t1.Filtered := False;
t1.Filter:= 'FIOID='+ fiot.FieldByName('ID').AsString;
t1.Filtered := true;
t1.First;

summ:= 0;
while not t1.Eof do
begin
summ:=summ + t1.FieldByName('sob').asinteger;
t1.Next;
end;

ListBox1.Items.Add(fiot.FieldByName('Fio').AsString+ ': '+ IntToStr(summ));
fiot.Next;
end;
end;
 
Спасибо! Всё так как я и хотел.
 
Мы в соцсетях:

Взломай свой первый сервер и прокачай скилл — Начни игру на HackerLab

🚀 Первый раз на Codeby?
Гайд для новичков: что делать в первые 15 минут, ключевые разделы, правила
Начать здесь →
🔴 Свежие CVE, 0-day и инциденты
То, о чём ChatGPT ещё не знает — обсуждаем в реальном времени
Threat Intel →
💼 Вакансии и заказы в ИБ
Pentest, SOC, DevSecOps, bug bounty — работа и проекты от проверенных компаний
Карьера в ИБ →

HackerLab