Форум по Delphi программированию

Delphi Sources



Вернуться   Форум по Delphi программированию > Все о Delphi > Базы данных
Ник
Пароль
Регистрация <<         Правила форума         >> FAQ Пользователи Календарь Поиск Сообщения за сегодня Все разделы прочитаны

Ответ
 
Опции темы Поиск в этой теме Опции просмотра
  #1  
Старый 26.12.2012, 13:42
ZMihail ZMihail вне форума
Прохожий
 
Регистрация: 26.12.2012
Сообщения: 5
Репутация: 10
По умолчанию Как расчитать по полю

Есть две таблицы (ClientDataSet). Первая, назовём её (FIOT) с первичным ключом (ID) и тектовым
полем (Fio)- где записываются фамилии. Вторая, назавём её (SUMT) c ключевым полем (FIOID), куда записываются
числовые данные из поля (ID) таблицы (FIO), второе числовое поле (SUM), где находятся суммы по кождой фамилии
из первой таблицы. Каждая фамилия имеет много строк из таблицы (SUMT). Нужно посчитать суммы по каждой
фамилии и вывести этот результат в ListBox. Запросы в этих таблицах не работают.
Ответить с цитированием
  #2  
Старый 26.12.2012, 13:54
Аватар для M.A.D.M.A.N.
M.A.D.M.A.N. M.A.D.M.A.N. вне форума
Sir Richard Abramson
 
Регистрация: 05.04.2008
Сообщения: 5,505
Версия Delphi: XE10
Репутация: выкл
По умолчанию

Код:
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  
Старый 26.12.2012, 13:58
ZMihail ZMihail вне форума
Прохожий
 
Регистрация: 26.12.2012
Сообщения: 5
Репутация: 10
По умолчанию

Спасибо большое но В этих таблицах запрос не работает.
Ответить с цитированием
  #4  
Старый 26.12.2012, 14:10
Аватар для M.A.D.M.A.N.
M.A.D.M.A.N. M.A.D.M.A.N. вне форума
Sir Richard Abramson
 
Регистрация: 05.04.2008
Сообщения: 5,505
Версия Delphi: XE10
Репутация: выкл
По умолчанию

Выложи ER диаграмму своей базы.
Имена таблиц я привел произвольные, в качестве примера.
__________________
— Как тебя понимать?
— Понимать меня не обязательно. Обязательно меня любить и кормить вовремя.


На Delphi, увы, больше не программирую.
Рекомендуемая литература по программированию
Ответить с цитированием
  #5  
Старый 26.12.2012, 14:15
ZMihail ZMihail вне форума
Прохожий
 
Регистрация: 26.12.2012
Сообщения: 5
Репутация: 10
По умолчанию Гдето так

Код:
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  
Старый 26.12.2012, 14:21
Аватар для M.A.D.M.A.N.
M.A.D.M.A.N. M.A.D.M.A.N. вне форума
Sir Richard Abramson
 
Регистрация: 05.04.2008
Сообщения: 5,505
Версия Delphi: XE10
Репутация: выкл
По умолчанию

ER диаграмму, а не исходник программы.
Подобная схема должна быть:


Или "ER диаграмма? Не, не слышали."?
__________________
— Как тебя понимать?
— Понимать меня не обязательно. Обязательно меня любить и кормить вовремя.


На Delphi, увы, больше не программирую.
Рекомендуемая литература по программированию
Ответить с цитированием
  #7  
Старый 26.12.2012, 14:33
ZMihail ZMihail вне форума
Прохожий
 
Регистрация: 26.12.2012
Сообщения: 5
Репутация: 10
По умолчанию

Где то так
Изображения
Тип файла: jpg ScanImage001.jpg (35.4 Кбайт, 6 просмотров)
Ответить с цитированием
  #8  
Старый 27.12.2012, 16:54
Аватар для M.A.D.M.A.N.
M.A.D.M.A.N. M.A.D.M.A.N. вне форума
Sir Richard Abramson
 
Регистрация: 05.04.2008
Сообщения: 5,505
Версия Delphi: XE10
Репутация: выкл
По умолчанию

Чуть позже напишу примерный запрос.

База какая? Напишу по орокловому.
__________________
— Как тебя понимать?
— Понимать меня не обязательно. Обязательно меня любить и кормить вовремя.


На Delphi, увы, больше не программирую.
Рекомендуемая литература по программированию
Ответить с цитированием
  #9  
Старый 27.12.2012, 20:26
ZMihail ZMihail вне форума
Прохожий
 
Регистрация: 26.12.2012
Сообщения: 5
Репутация: 10
По умолчанию

База состоит из двух таблиц (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.
Ответить с цитированием
Ответ


Delphi Sources

Опции темы Поиск в этой теме
Поиск в этой теме:

Расширенный поиск
Опции просмотра

Ваши права в разделе
Вы не можете создавать темы
Вы не можете отвечать на сообщения
Вы не можете прикреплять файлы
Вы не можете редактировать сообщения

BB-коды Вкл.
Смайлы Вкл.
[IMG] код Вкл.
HTML код Выкл.
Быстрый переход


Часовой пояс GMT +3, время: 08:21.


 

Сайт

Форум

FAQ

RSS лента

Прочее

 

Copyright © Форум "Delphi Sources" by BrokenByte Software, 2004-2023

ВКонтакте   Facebook   Twitter