2014-01-10 3 views
-6

Во-первых, я ничего не знаю о IF состояние в SQL Server 2008.Если условие в SQL Server 2008

У меня есть таблица [AccountHistory] рение W 2 колонки AccountType & Amount.

AccountType может иметь различные значения (Deposit, Withdrawal, Profit,...etc), мне нужен запрос для выполнения следующих действий:

If AccountType = Withdrawal Then Amount = Amount * -1 

Для примера:

AcountType   Amount 
----------------------------- 
    Deposit    100 
    Withdrawal   -150 
    Profit    220 
    Withdrawal   -200 
+0

Похоже, вы можете сделать это напрямую с помощью оператора 'UPDATE' –

+0

Почему я получаю -ve ??? !! –

+1

Вы становитесь голосом, потому что у вас есть полное отсутствие понимания и/или усилий с вашей стороны. Ожидается, что вы будете хотя бы минимально стараться понять вашу проблему, прежде чем обращаться за помощью в Stack Overflow, потому что такие основные вопросы не добавляют к значению Stack Overflow. Жизнь иногда бывает жестокой. –

ответ

0
update AccountHistory 
set amount = amount * -1 
where accounttype = 'Withdrawal'; 
+0

Я получаю сообщение об ошибке на странице ASP: Неправильный синтаксис рядом с ключевым словом «Обновить» Хотя он работает в построителе запросов –

+0

Недостаточно информации, чтобы помочь, так как этот запрос должен работать. –

+0

да, запрос работает нормально, но я получаю вышеуказанную ошибку при использовании этого запроса на странице ASP, я не знаю, почему ... есть ли альтернативы? –

0

В дополнение к ответу, представленной Джоном Gibb (полностью верно в принципе), я также буду следить за вашей логикой здесь. Существуют ли ограничения, запрещающие пользователю вводить отрицательные значения в контексте системы?

Если нет, вы можете непреднамеренно превращать отрицательные числа в положительные и получать очень нечетные результаты по мере роста сбора данных. Кроме того, этот запрос может быть запущен только один раз - после того, как будут присутствовать дополнительные данные, выполнение его снова приведет к возврату исходных отрицательных значений в положительные значения.

update AccountHistory 
set amount = amount * -1 
where accounttype = 'Withdrawal' 
and amount > 0; 
Смежные вопросы