Форум программистов
 

Восстановите пароль или Зарегистрируйтесь на форуме, о проблемах и с заказом рекламы пишите сюда - alarforum@yandex.ru, проверяйте папку спам!

Вернуться   Форум программистов > Delphi программирование > БД в Delphi
Регистрация

Восстановить пароль
Повторная активизация e-mail

Купить рекламу на форуме - 42 тыс руб за месяц

Ответ
 
Опции темы Поиск в этой теме
Старый 03.11.2013, 14:44   #1
Pang
Пользователь
 
Регистрация: 22.02.2008
Сообщений: 21
По умолчанию Подсчет суммы выбранных полей

Здравствуйте,уважаемые! Подскажите как лучше решить вопрос. Есть таблицы в acess. В delphi таблицы получаю через компоненты adoquery. Нужно подсчитать сумму чисел в полях по определенному критерию. На практике это выглядит так:
таблица Tovari и Kol_tov. В первой список существующих товаров ,во второй количество товаров в разрезе существующих складов. Поля таблицы tovari: nom_id,name,strana,cena и пр. Поля таблицы kol_tov: id_sklada,nom_id,kolich.
В моем представлении нужно создать вычисляемое поле kolvo в таблице tovari где посчитать количество товара следующим образом: если tovari.nom_id=kol_tov.nom_id то прибавлять значение поля kolvo к сумме. Пробовал делать это в цикле в событии query oncalculate. Может стоит запросом? Подскажете примерный набросок такого запроса
Pang вне форума Ответить с цитированием
Старый 03.11.2013, 16:11   #2
Pang
Пользователь
 
Регистрация: 22.02.2008
Сообщений: 21
По умолчанию

procedure TDataModule3.TovariCalcFields(DataS et: TDataSet);
var a,b,c,d:integer;
begin
c:=0;
datamodule3.kol_tovara.First;
while not datamodule3.kol_tovara.EOF do begin
a:= datamodule3.Kol_tovaranom_id.asinte ger;
b:= datamodule3.Tovarinom_id.asinteger;
d:= datamodule3.Kol_tovarakolvo.asinteg er;
if a=b then c:=c+d else datamodule3.kol_tovara.Next;
end;
end;

Ошибка о том что набор данных kol_tovara не открыт.

Последний раз редактировалось Pang; 03.11.2013 в 16:28.
Pang вне форума Ответить с цитированием
Старый 03.11.2013, 16:18   #3
Аватар
Старожил
 
Аватар для Аватар
 
Регистрация: 17.11.2010
Сообщений: 18,922
По умолчанию

Лучше в запросе. Например так
Код:
SELECT T1.*,(SELECT SUM(T1.Koli) FROM Tabl2 T2 WHERE T2.Id=T1.Id)  AS AllKoli
  FROM Table1 T1
Если бы архитекторы строили здания так, как программисты пишут программы, то первый залетевший дятел разрушил бы цивилизацию
Аватар вне форума Ответить с цитированием
Старый 03.11.2013, 16:49   #4
Pang
Пользователь
 
Регистрация: 22.02.2008
Сообщений: 21
По умолчанию

Цитата:
Сообщение от Аватар Посмотреть сообщение
Лучше в запросе. Например так
Код:
SELECT T1.*,(SELECT SUM(T1.Koli) FROM Tabl2 T2 WHERE T2.Id=T1.Id)  AS AllKoli
  FROM Table1 T1
Прошу прощения, я не совсем понимаю что есть "T1.*" и "T2"

Код:
SELECT T1.*, (SELECT SUM(Товары.kol) FROM КоличествоТовара T2 WHERE КоличествоТовара.nom_id=Товары.nom_id) AS allkol
FROM Товары T1
Pang вне форума Ответить с цитированием
Старый 03.11.2013, 17:29   #5
Аватар
Старожил
 
Аватар для Аватар
 
Регистрация: 17.11.2010
Сообщений: 18,922
По умолчанию

http://technet.microsoft.com/ru-ru/l...=sql.105).aspx
В т.ч. и для ACCESS
Если бы архитекторы строили здания так, как программисты пишут программы, то первый залетевший дятел разрушил бы цивилизацию
Аватар вне форума Ответить с цитированием
Старый 04.11.2013, 09:14   #6
Pang
Пользователь
 
Регистрация: 22.02.2008
Сообщений: 21
По умолчанию Спасибо! Разобрался!

SELECT T1.*, (SELECT SUM(T2.kolvo) FROM Количествотовара AS T2 WHERE T2.nom_id=T1.nom_id) AS allkol FROM Товары AS T1
Pang вне форума Ответить с цитированием
Ответ


Купить рекламу на форуме - 42 тыс руб за месяц

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

Расширенный поиск


Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
Подсчет суммы killer12rus SQL, базы данных 1 26.09.2010 00:35
Подсчет суммы Владимир1988 Помощь студентам 7 05.12.2009 23:02
Подсчет полей в таблице Arkatic Общие вопросы C/C++ 0 10.05.2009 22:52
Вывод списка выбранных полей, относящихся к элементу DBCheckListBox Cvetok Помощь студентам 0 07.06.2008 16:20
выбор по нескольким параметрам и подсчет кол-ва выбранных строк Oleshka Microsoft Office Excel 4 29.02.2008 11:38