Форум программистов
 
Контакты: о проблемах с регистрацией, почтой и по другим вопросам пишите сюда - alarforum@yandex.ru, проверяйте папку спам! Обязательно пройдите активизацию e-mail.

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

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


Донат для форума - использовать для поднятия настроения себе и модераторам

А ещё здесь можно купить рекламу за 25 тыс руб в месяц! ) пишите сюда - alarforum@yandex.ru

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

Здравствуйте,уважаемые! Подскажите как лучше решить вопрос. Есть таблицы в 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
Репутация: 10
По умолчанию

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
Адрес: Северодонецк.ua
Сообщений: 18,921
Репутация: 6688
По умолчанию

Лучше в запросе. Например так
Код:
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
Репутация: 10
По умолчанию

Цитата:
Сообщение от Аватар Посмотреть сообщение
Лучше в запросе. Например так
Код:
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
Адрес: Северодонецк.ua
Сообщений: 18,921
Репутация: 6688
По умолчанию

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

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

Опции темы

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

BB коды Вкл.
Смайлы Вкл.
[IMG] код Вкл.
HTML код Выкл.

Быстрый переход

Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
Подсчет суммы killer12rus SQL, базы данных 1 26.09.2010 00:35
Подсчет суммы Владимир1988 Помощь студентам 7 06.12.2009 00: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 12:38


16:38.


Powered by vBulletin® Version 3.8.11
Copyright ©2000 - 2019, Jelsoft Enterprises Ltd.