| Версия для печати темы
Нажмите сюда для просмотра этой темы в оригинальном формате |
| Форум программистов > Delphi: Базы данных и репортинг > Подсчёт суммы по полю, без SQL |
| Автор: ZMihail 26.12.2012, 13:51 |
| Есть две таблицы (ClientDataSet). Первая, назовём её (FIOT) с первичным ключом (ID) и тектовым полем (Fio)- где записываются фамилии. Вторая, назавём её (SUMT) c ключевым полем (FIOID), куда записываются числовые данные из поля (ID) таблицы (FIO), второе числовое поле (SUM), где находятся суммы по кождой фамилии из первой таблицы. Каждая фамилия имеет много строк из таблицы (SUMT). Нужно посчитать суммы по каждой фамилии и вывести этот результат в ListBox. Запросы в этих таблицах не работают. procedure TForm1.Button7Click(Sender: TObject); Var summ: integer; i : integer; begin SumT.Filter:= 'FIOID='+ fiot.FieldByName('ID').AsString; SumT.Filtered:=true; summ:=0; while not SUMT.Eof do begin SUMT.Next; while not fiot.Eof do Begin summ:=summ+ SUMT.FieldByName('sob').asinteger; ListBox1.Items.Add(fiot.FieldByName('Fio').AsStrin g+ ': '+ IntToStr(summ)); fiot.Next; end; end; end; |
| Автор: Vas 26.12.2012, 15:47 | ||
Как-то так, писал без дельфей и проверки, ошибки могут быть, но главное принцип
|
| Автор: ZMihail 26.12.2012, 16:01 |
| Спасибо! Сейчас попробую. |
| Автор: ZMihail 26.12.2012, 16:16 |
| Ругается listBox1.Items.Add(FIOT.FieldByName('FIO').AsString + ':' + IntToStrdef (здесь) (summa,0)); |
| Автор: Vas 26.12.2012, 17:23 |
| Ну замени на просто IntToStr. И весь текст ошибки приводи, а то не понятно на что ругается конкретно |
| Автор: Akella 28.12.2012, 10:30 |
| http://forum.vingrad.ru/forum/topic-353769.html |