Как сделать подсчёт суммы по id пользователя в DBGrid?
У меня есть подсчёт но он считает только последнего пользователя
Код
procedure TForm1.BitBtn7Click(Sender: TObject);
var
summa,sumenergy,summa2,sumvoda,summonth,ID_Person:integer;
begin
DBGrid1.DataSource.DataSet.First;
While not ADOTable1.Eof do
begin
ID_Person:=DBGrid1.DataSource.DataSet.FieldByName('id').AsInteger; //Сортировка
summa:=ADOTable1.FieldByName('energy_poc').AsInteger-ADOTable1.FieldByName('energy').AsInteger; //Подсчёт суммы электричества за месяц (Этот месяц - Прошлый)
sumenergy:=summa*ADOTable1.FieldByName('energy_price').AsInteger; //Подсчёт суммы электричества за месяц (Количетсво за месяц * на стоимость)
summa2:=ADOTable1.FieldByName('voda_poc').AsInteger-ADOTable1.FieldByName('voda').AsInteger; //Подсчёт суммы воды за месяц (Этот месяц - Прошлый)
sumvoda:=summa2*ADOTable1.FieldByName('voda_price').AsInteger; //Подсчёт суммы воды за месяц (Количетсво за месяц * на стоимость)
summonth:=sumenergy+sumvoda; //Подсчёт суммы электричества и воды за месяц
//ADOQuery1.Active:=False;
//ADOQuery1.SQL.Clear;
//ADOQuery1.SQL.Add('select id,name,familya,otchestvo,yliza,dom,kv,energy,voda,energy_poc,voda_poc,energy_pr
ice,voda_price, sum(sum(energy_poc-energy*energy_price+voda_poc-voda*voda_price)), date from users;');
//ADOQuery1.Active:=True;
DBGrid1.DataSource.DataSet.Next;
end;
Edit1.Text:=IntToStr(summonth);
//Edit1.Text:=ADOQuery1.Fields[0].asString;
end;
Отредактировал: suttles, - 29.4.2017, 5:39