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

Откуда:
Сообщений: 8
допустим есть выборка элементов из таблицы1(idcomp,idobject,amount)
select idobject, amount from таблица1
where idcomp = 1


нужно теперь увеличить значение amount в таблице1 на значение amount из выборки для соответсвующего кода предмета idobject.

ну то есть по сути как я понимаю нужно
последовательно брать элемент(idobject,amount) из выборки и во всей таблице1 увеличить значение amount для каждого объекта с idobject.

Ну как это сделать в SQL?
20 июн 12, 17:57    [12747967]     Ответить | Цитировать Сообщить модератору
 Re: перебор элементов  [new]
Shakill
Member

Откуда: мск
Сообщений: 1887
Zasalamel,

UPDATE t
	SET amount += t2.amount
FROM MyTable t
JOIN MyTable t2 ON t2.idobject = t.idobject
WHERE t2.idcomp = 1
20 июн 12, 18:10    [12748050]     Ответить | Цитировать Сообщить модератору
 Re: перебор элементов  [new]
Zasalamel
Member

Откуда:
Сообщений: 8
Shakill
Zasalamel,

UPDATE t
	SET amount += t2.amount
FROM MyTable t
JOIN MyTable t2 ON t2.idobject = t.idobject
WHERE t2.idcomp = 1


в данном случае оно увеличит лишь для idcomp = 1. а надо чтобы для всех idcomp
Ну то есть в таблице1
idcomp1 idobject amount
idcomp2 idobject1 amount
idcomp3 idobject2 amoun
20 июн 12, 18:25    [12748131]     Ответить | Цитировать Сообщить модератору
 Re: перебор элементов  [new]
Shakill
Member

Откуда: мск
Сообщений: 1887
Zasalamel
в данном случае оно увеличит лишь для idcomp = 1. а надо чтобы для всех idcomp

вы это проверили?
20 июн 12, 18:27    [12748137]     Ответить | Цитировать Сообщить модератору
 Re: перебор элементов  [new]
Zasalamel
Member

Откуда:
Сообщений: 8
Shakill,

да


ну вот что получилось у меня на основе вашего. вроде правильно работает теперь
update A
set amount += B.amount
from Mytable1 as A, ( select idobject, amount from запасы
					 where idcomp = 1) as B
where A.idobject = B.idobject and /*A.idcomp<>1* ну что бы для самого себя не изменяла/
20 июн 12, 18:36    [12748191]     Ответить | Цитировать Сообщить модератору
 Re: перебор элементов  [new]
Shakill
Member

Откуда: мск
Сообщений: 1887
Zasalamel, вообще-то ваш скрипт делает то же самое что и мой
конечно же, если таблицы [MyTable1] и [запасы] - это одна и та же таблица
20 июн 12, 18:43    [12748237]     Ответить | Цитировать Сообщить модератору
 Re: перебор элементов  [new]
Zasalamel
Member

Откуда:
Сообщений: 8
Shakill
Zasalamel, вообще-то ваш скрипт делает то же самое что и мой
конечно же, если таблицы [MyTable1] и [запасы] - это одна и та же таблица


одна и та же таблица.

хм.странно.
20 июн 12, 18:58    [12748313]     Ответить | Цитировать Сообщить модератору
Все форумы / Microsoft SQL Server Ответить