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

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

Вернуться   Форум программистов > IT форум > Помощь студентам
Регистрация

Восстановить пароль

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

Ответ
 
Опции темы Поиск в этой теме
Старый 16.12.2010, 22:56   #1
smaw1989
Пользователь
 
Регистрация: 16.12.2010
Сообщений: 13
По умолчанию

Уважаемые, подскажите пожалуйста как просуммировать вычисляемые поля.

Имеются 3 таблицы: покупатель, накладная и список товаров в накладной. Таблица "покупатель" и таблица "накладная" связаны по номеру покупателя. "Накладная" и "список товаров в накладной" связаны по номеру накладной. Структура второй таблицы "список товаров" такая: номер товара- количество-цена- сумма. Товаров может быть несколько. Поле сумма- вычисляемое поле (количество * цена). Необходимо создать SQL-запрос, чтобы в поле "итого" таблицы "накладная" заносилась сумма вычисляемых полей "сумма" из таблицы "список товаров в накладной".

Что я сделал: создал в DataModule новый компонент Query и в DBGrid сослался на него вместо TTable. В свойстве SQL Query я прописал Select * from Shipping_list.db where (Customer_ID:=Customer_ID). Таблица "накладная" связалась с "покупатель", тут все ок.

Укажите пожалуйста, куда теперь нужно прописать запрос, как я понял Select Sum (поле_сумма_из_таблицы_список_товар ов) from Shipping_list_Detail.db, чтобы эти суммы по отдельным товарам просуммировались и занеслись в поле "итого" таблицы "Накладная", ибо пока опыта немного, а однозначного ответа в сети не нашел.

Товарищи, хотя бы намекните, что нужно сделать.

Когда задаю запрос вида Select Sum (Field) From Table.db в TQuery и ставлю свойство актив в тру выдает ошибку: Invalid use of keyword Token: )

Последний раз редактировалось Stilet; 19.12.2010 в 20:42.
smaw1989 вне форума Ответить с цитированием
Старый 17.12.2010, 17:22   #2
vovk
!=
Участник клуба
 
Аватар для vovk
 
Регистрация: 08.09.2008
Сообщений: 1,751
По умолчанию

Код:
update "накладная" set "накладная"."итого" = (select sum("список товаров".цена * "список товаров".количество) from  "список товаров"
where "список товаров"."номер накладной" = "накладная"."номер накладной")
чтото вроде такого конечно надо подставлять имена таблиц, и имена полей, и не уверен сработает ли BDE.

А вам обязательно работать с парадоксом и через BDE?
vovk вне форума Ответить с цитированием
Старый 19.12.2010, 18:38   #3
smaw1989
Пользователь
 
Регистрация: 16.12.2010
Сообщений: 13
По умолчанию

vovk, большое спасибо за ответ. К сожалению приведенный вами код у меня тоже выдает ошибку: invalid vield name: itogo. Парадокс и бде, увы, обязательны.

Может как-то без SQL- запроса можно просуммировать вычисляемые поля?

Быть может последовательность моих действий не верна? Создаю Query и DataSource, связываю их. В Query создаю запрос Select Sum (itogo) From Table.db, затем пытаюсь add all fields в datamodule2.Query, но пишет что поле itogo инвалидно.

Последний раз редактировалось Stilet; 19.12.2010 в 20:43.
smaw1989 вне форума Ответить с цитированием
Старый 19.12.2010, 20:45   #4
vovk
!=
Участник клуба
 
Аватар для vovk
 
Регистрация: 08.09.2008
Сообщений: 1,751
По умолчанию

скинте парадоксовские таблички, накладная и список товаров, попробую поигратся с запросами.
vovk вне форума Ответить с цитированием
Старый 19.12.2010, 20:45   #5
Stilet
Белик Виталий :)
Старожил
 
Аватар для Stilet
 
Регистрация: 23.07.2007
Сообщений: 57,097
По умолчанию

Цитата:
Может как-то без SQL- запроса можно просуммировать вычисляемые поля?
В принципе да. Описать событие OnCalcFields, где в созданном в дизайне поле вписать суммирование. Это уже без SQL, но все эти три таблицы в любом случае должны быть связаны.
I'm learning to live...
Stilet вне форума Ответить с цитированием
Старый 19.12.2010, 21:08   #6
smaw1989
Пользователь
 
Регистрация: 16.12.2010
Сообщений: 13
По умолчанию

vovk
Пожалуйста, скинул. В списке товаров поле sum- бывшее itogo (по-разному переименовывал) -сумма одной позиции, сумма всех позиций в накладной- поле shipping_list_summ

Stilet
А это сработает, если поля нужно брать из одной таблицы и суммировать их в поле другой?
Вложения
Тип файла: rar DataBase.rar (4.9 Кб, 19 просмотров)

Последний раз редактировалось smaw1989; 19.12.2010 в 21:13.
smaw1989 вне форума Ответить с цитированием
Старый 19.12.2010, 21:34   #7
smaw1989
Пользователь
 
Регистрация: 16.12.2010
Сообщений: 13
По умолчанию

Вот так попробовал:

Код:
select sum(kol*price) from...
Ошибок теперь никаких нету, суммирует, теперь как я понимаю нужно в TQuery, который содержит запрос из таблицы "накладная" прописать что поле "Сумма накладной" = SUM OF kol price from "Таблица список товаров"?

Последний раз редактировалось smaw1989; 19.12.2010 в 22:09.
smaw1989 вне форума Ответить с цитированием
Старый 20.12.2010, 18:11   #8
smaw1989
Пользователь
 
Регистрация: 16.12.2010
Сообщений: 13
По умолчанию

Создал новый Query. Нужно сделать запрос с выбором всех полей из таблицы "Накладная" где поле "сумма_накладной" = "сумма_сумм_из_списка_товаров" из компонента query где это суммирование выч. полей происходит.

Пытаюсь как-то так:
Код:
 Select * From shipping_list.db where (shipping_list.shipping_list_summ:=query3.SUMOFkolprice)
Не фурычит. Как сделать так чтобы работало?
smaw1989 вне форума Ответить с цитированием
Ответ


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

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

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


Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
Выгрузка вычисляемых полей Table в Excel Nika03 БД в Delphi 2 20.05.2010 14:46
Обновление вычисляемых полей в при LockType:=ltBatchOptimistic Родион БД в Delphi 0 23.07.2009 18:33
Возможна ли сортировка вычисляемых полей в DBGrid, если используется ADOTable ArtInt БД в Delphi 16 13.04.2009 03:13
Сохранение значений вычисляемых полей gimbomba БД в Delphi 6 21.02.2009 19:19
Сортировка после просчета вычисляемых полей azat БД в Delphi 4 19.01.2008 21:09