Помогите написать SQL запрос
1564
4
Срочно помогите!

не знаю как написать запрос на обновление таблицы:хммм:

необходимо:
в таблице Т изменить поле С1 на значение С1-С2
где С2 поле из другой таблицы!

необходима связь между таблицами по ключу

--------------------------------------------
такого изврата я еще никогда не делал
помогите плиз очень надо!!!!
snufi
Приведенной инфы слишком мало для конкреного ответа. Хоть укажи СУБД, они же используют разные диалекты SQL...

В общих чертах может вот это поможет (для SQL Server 2000):

UPDATE titles
SET ytd_sales = t.ytd_sales + s.qty
FROM titles t, sales s
WHERE t.title_id = s.title_id
AND s.ord_date = (SELECT MAX(sales.ord_date) FROM sales)

Или вот это:

UPDATE titles
SET ytd_sales =
(SELECT SUM(qty)
FROM sales
WHERE sales.title_id = titles.title_id
AND sales.ord_date IN (SELECT MAX(ord_date) FROM sales))
FROM titles, sales
snufi
не вижу как это сделать в один запрос
я бы сделал так.
Tab1 : id1, C1
Tab2: id2, C2

select id1 id, C1,C2 from tab1, tab2
where id1=id2

Результат скидываем в таблицу tmp

update tab1
set C1=
(select c1-c2 from tmp where id=id1);

drop table tmp;
snufi
Как я понял из ТЗ должно быть примерно так.

Tab1: id C1
Tab2: id C2 id_tab1

Update tab1
Set C1=C1-(Select C2 from Tab2 Where tab1.id=id_tab1)

Только обязательно нужно что бы каждому значению С1 соответствовало одно значение С2. А то ошибку выдаст.
EvilX
А если сделать еще шаг:миг:

Update tab1
Set C1=C1-(Select sum(C2) from Tab2 Where tab1.id=id_tab1)