2013-07-30 2 views
-2

У меня есть таблица, в которой мне нужно увеличить значение на -1. Вместо того, чтобы увеличиваться, я получаю -1 во всех моих обновленных столбцах. Любая помощь приветствуется.Запрос на обновление SQL Server 2005 не увеличивается должным образом

UPDATE rpt_FYInfo 
SET rptpddiff = rptpddiff - 1 
WHERE rptpddiff =0 and UCI= 'BPA' 

ответ

3

Вы убедитесь, что все rptpddiffs являются 0, то декремента их 1. Похоже, вы хотели бы сделать это на все ваши rptpddiffs если вы не ожидая -1 на всех из них , (Это, как вы делаете -1, -2, -3, -4)

UPDATE rpt_FYInfo 
SET rptpddiff = rptpddiff - 1 
WHERE UCI= 'BPA' 

Если вы не хотите, чтобы они остановились на 0 или что-то, что дело просто изменить вашу логику, чтобы соответствовать.

Чтобы увеличить, просто измените свою логику, конечно, вы, вероятно, хотите что-то узнать о сущности, которую вы обновляете, если только UCI не является ее основным ключом или чем-то еще.

UPDATE rpt_FYInfo 
SET rptpddiff = rptpddiff + 1 
WHERE UCI= 'BPA' 
+0

У меня есть первичный ключ, который называется rptpd. Я изменил свой код, чтобы попытаться использовать это поле. Код по-прежнему не увеличивается. – user2576682

+0

UPDATE rpt_FYInfo SET rptpddiff = rptpd - 378 WHERE rptpddiff = -1 и UCI = 'BPA' – user2576682

0

Вы устанавливаете rptpddiff -1 в своем заявлении обновление, где его начальное значение равно 0.

+0

Вы верны. Как бы я изменил rptpddiff, чтобы получить -1, -2, -3, -4, -5 и т. Д. – user2576682

+0

- все значения rptpddiff = 0? – Krishna