Добро пожаловать в форум, Guest  >>   Войти | Регистрация | Поиск | Правила | В избранное | Подписаться
Все форумы / Microsoft SQL Server Новый топик    Ответить
 Запрос sql  [new]
Динара48
Member

Откуда:
Сообщений: 8
подскажите пожалуйста в чем может быть ошибка

есть запрос, который вставляет значение(стоимость заказа) в строку стоимость заказу в таблице заказ, но проблема в том, что он вставляет эти значение в пустые строки, а не в те которые нужно

insert into tab_order(cost_order)
select sum(tab_material.cost_metr_material*tab_material_product_order.count_material * tab_product_order.count_product) + (tab_product.cost_tailoring * tab_product_order.count_product)
from tab_order, tab_product, tab_product_order, tab_material, tab_material_product_order
where tab_order.IDorder = tab_product_order.IDorder and
tab_product_order.IDorder = tab_material_product_order.IDorder and
tab_product.IDproduct = tab_product_order.IDproduct and
tab_product_order.IDproduct = tab_material_product_order.IDproduct and
tab_material.IDmaterial = tab_material_product_order.IDmaterial
group by tab_product_order.IDorder, tab_product_order.IDproduct;

К сообщению приложен файл. Размер - 9Kb
5 ноя 17, 23:35    [20929233]     Ответить | Цитировать Сообщить модератору
 Re: Запрос sql  [new]
Andy_OLAP
Member

Откуда: я знаю, что Хапоэль Беэр-Шева - чемпион
Сообщений: 3151
Динара48,

Хороший набор примеров использования update
5 ноя 17, 23:48    [20929255]     Ответить | Цитировать Сообщить модератору
 Re: Запрос sql  [new]
Rankatan
Member

Откуда:
Сообщений: 250
update t
set cost_order = sm
from tab_order t
inner join
(
	select tab_order.IDorder, sum(tab_material.cost_metr_material*tab_material_product_order.count_material * tab_product_order.count_product) + (tab_product.cost_tailoring * tab_product_order.count_product) sm
	from tab_order, tab_product, tab_product_order, tab_material, tab_material_product_order
	where tab_order.IDorder = tab_product_order.IDorder and
	tab_product_order.IDorder = tab_material_product_order.IDorder and
	tab_product.IDproduct = tab_product_order.IDproduct and
	tab_product_order.IDproduct = tab_material_product_order.IDproduct and
	tab_material.IDmaterial = tab_material_product_order.IDmaterial
	group by tab_order.IDorder
) t2
on t.IDorder=t2.IDorder
6 ноя 17, 00:00    [20929279]     Ответить | Цитировать Сообщить модератору
 Re: Запрос sql  [new]
Динара48
Member

Откуда:
Сообщений: 8
Rankatan, извините, что так много вопросов, скорее даже глупых, но только начала изучать
вот такая ошибка

К сообщению приложен файл. Размер - 19Kb
6 ноя 17, 00:16    [20929303]     Ответить | Цитировать Сообщить модератору
 Re: Запрос sql  [new]
Динара48
Member

Откуда:
Сообщений: 8
Rankatan, пробовала вот так, но тоже ошибка - Error Code: 1093. You can't specify target table 'tab_order' for update in FROM clause 0.000 sec


update tab_order
set cost_order = (select sum(tab_material.cost_metr_material*tab_material_product_order.count_material * tab_product_order.count_product) + (tab_product.cost_tailoring * tab_product_order.count_product)
from tab_order, tab_product, tab_product_order, tab_material, tab_material_product_order
where tab_order.IDorder = tab_product_order.IDorder and
tab_product_order.IDorder = tab_material_product_order.IDorder and
tab_product.IDproduct = tab_product_order.IDproduct and
tab_product_order.IDproduct = tab_material_product_order.IDproduct and
tab_material.IDmaterial = tab_material_product_order.IDmaterial
group by tab_product_order.IDorder, tab_product_order.IDproduct);

К сообщению приложен файл. Размер - 13Kb
6 ноя 17, 00:17    [20929308]     Ответить | Цитировать Сообщить модератору
 Re: Запрос sql  [new]
Гавриленко Сергей Алексеевич
Member

Откуда: Moscow
Сообщений: 36905
Модератор: Не плодите топики, и научитесь отличать MSSQL от MySQL. Отличий там больше, чем на одну букву в названии.


Сообщение было отредактировано: 6 ноя 17, 00:31
6 ноя 17, 00:29    [20929333]     Ответить | Цитировать Сообщить модератору
Все форумы / Microsoft SQL Server Ответить