|
|
Регистрация | << Правила форума >> | FAQ | Пользователи | Календарь | Поиск | Сообщения за сегодня | Все разделы прочитаны |
|
Опции темы | Поиск в этой теме | Опции просмотра |
#1
|
|||
|
|||
Как расчитать по полю
Есть две таблицы (ClientDataSet). Первая, назовём её (FIOT) с первичным ключом (ID) и тектовым
полем (Fio)- где записываются фамилии. Вторая, назавём её (SUMT) c ключевым полем (FIOID), куда записываются числовые данные из поля (ID) таблицы (FIO), второе числовое поле (SUM), где находятся суммы по кождой фамилии из первой таблицы. Каждая фамилия имеет много строк из таблицы (SUMT). Нужно посчитать суммы по каждой фамилии и вывести этот результат в ListBox. Запросы в этих таблицах не работают. |
#2
|
||||
|
||||
Код:
select a.foo, bar.sum from table a, (select sum(c.field) sum from table2 c where c.user=a.ID) bar — Как тебя понимать? — Понимать меня не обязательно. Обязательно меня любить и кормить вовремя. На Delphi, увы, больше не программирую. Рекомендуемая литература по программированию Последний раз редактировалось M.A.D.M.A.N., 26.12.2012 в 13:56. |
#3
|
|||
|
|||
Спасибо большое но В этих таблицах запрос не работает.
|
#4
|
||||
|
||||
Выложи ER диаграмму своей базы.
Имена таблиц я привел произвольные, в качестве примера. — Как тебя понимать? — Понимать меня не обязательно. Обязательно меня любить и кормить вовремя. На Delphi, увы, больше не программирую. Рекомендуемая литература по программированию |
#5
|
|||
|
|||
Гдето так
Код:
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').AsString+ ': '+ IntToStr(summ)); fiot.Next; end; end; end; Последний раз редактировалось Admin, 27.12.2012 в 17:01. |
#6
|
||||
|
||||
ER диаграмму, а не исходник программы.
Подобная схема должна быть: Или "ER диаграмма? Не, не слышали."? — Как тебя понимать? — Понимать меня не обязательно. Обязательно меня любить и кормить вовремя. На Delphi, увы, больше не программирую. Рекомендуемая литература по программированию |
#7
|
|||
|
|||
Где то так
|
#8
|
||||
|
||||
Чуть позже напишу примерный запрос.
База какая? Напишу по орокловому. — Как тебя понимать? — Понимать меня не обязательно. Обязательно меня любить и кормить вовремя. На Delphi, увы, больше не программирую. Рекомендуемая литература по программированию |
#9
|
|||
|
|||
База состоит из двух таблиц (ClientDataSet). Работают они на Midas.DLL.
Это самостоятельные таблицы. И у них нет общей БД. ----------------------------------------------------------------------- Где-то так, но считает сумму только первой записи. В Чём ошибка? Не соображу. procedure TForm1.Button7Click(Sender: TObject); var summa, id: integer; begin listBox1.Clear; FIOT.First; while not FIOT.Eof do begin id:=FIOT.FieldByName('ID').AsInteger; summa:=0; glavt.next; while not glavt.Eof do begin if glavt.FieldByName('FIOID').AsInteger=ID then summa:=summa + glavt.FieldByName('SOB').AsInteger; Glavt.Next; end; listBox1.Items.Add(FIOT.FieldByName('FIO').AsStrin g + ':' + IntToStr(summa)); FIOT.Next; end; end; end. Последний раз редактировалось ZMihail, 27.12.2012 в 20:31. |