Top.Mail.Ru
Мастера DELPHI, Delphi programming community Титульная страница Поиск, карта сайта Написать письмо 
| Новости | Поиск | FAQ | Статьи | Книги | Новости VCL |
| Форумы ЧАТ | Орешник | KOL и MCK |
Форумы -» Основная («Начинающим»)/ Базы / WinAPI / Компоненты / Сети / Media / Игры / Corba и COM / KOL / FreePascal / .Net / Прочее / RSDN.ORG

« предыдущая ветвь | форум | следующая ветвь »

Помогите написать SQL запрос... [D7, XP]


ixen ©   (2011-07-28 14:29:00) 

СУБД Firebird... вобщем суть в следующем.. есть таблица clientsсправочник клиентов, и movesих заказы

clients
Id- первичный ключ
client_name- имя клиента
summ- сумма заказов

moves
Id- первичный ключ
client_id- id клиента
kolvo- количество
price- цена единицы

нужно записать в поле sum таблицы clients стоимость всех их заказов...
можно ли сделать это одним запросом?
пока остановился на следующем... дальше не могу сообразить...

update clients set summ=(select cast(sum(m.kolvo*m.price)as numeric(15,2)) from clients c join moves m on c.id=m.client_id where m.type_doc in ('U','M'))

в результате происходит запись всем клиентам одну и туже сумму...


Dennis I. Komarov   (2011-07-28 15:26:00) [1]

цена - "price", а вот количество "kolvo"


ixen   (2011-07-28 14:53:00) [2]

все работает.. спасибо большое...


Омлет   (2011-07-28 14:41:00) [3]

UPDATE clients c
SET summ = (
 SELECT CAST(SUM(kolvo * price) AS NUMERIC(15,2))
 FROM moves m
 WHERE (c.id = m.client_id) AND (m.type_doc in ('U', 'M'))
);


Наверх

Титульная страница Поиск, карта сайта Написать письмо