2016-05-26 8 views
-1

Я пытаюсь получить то, что будет считаться функцией «вложенных if» в excel для формулировки в запросе. Цель запроса - создать представление, чтобы я мог сравнивать два набора данных.Условное форматирование if then statements

Если в excel формула будет выглядеть так: = IF (условие1 = 0, условие2, IF (условие2 = 0, условие 3, условие 1)).

Я получаю сообщение об ошибке:

Язык запросов Я пытался использовать это:

drop view danburycomp 
go 
create view danburycomp as 
SELECT *, 
     TotalCash=CASE 
        WHEN [cash out] = 0    THEN [cash counter cash in] 
        WHEN [cash counter cash in] = 0 THEN [cash counter cash out] 
                ELSE [cash out] 
       END 
FROM [trans jan-mar2016] 
WHERE [account number] IN ('UNIQUEID1', 'UNIQUEID2') 
    AND ([cash into trans] != 0 
     OR [cash out] != 0) 
    AND [date time trans] BETWEEN '2016-01-29' AND '2016-02-24' 
+1

Так что это проблема? любая ошибка? \t Пожалуйста, прочитайте [** How-to-Ask **] (http://stackoverflow.com/help/how-to-ask) \t \t И вот отличное место для [** START **] (http://spaghettidba.com/2015/04/24/how-to-post-at-sql-question-on-a-public-forum/), чтобы узнать, как улучшить качество вопроса и получить лучшие ответы. –

+0

Покажите нам схему db и реальный запрос, который вы попробовали ... Вы не можете сравнить DateID со строкой '' DATE'' и сравнить '[COLUMN NAME]! = 0' дважды –

+0

@JuanCarlosOropeza, спасибо за ваши предложенные изменения. Я сделал все возможное, чтобы удалить личную идентификационную информацию. Благодарю. – user2243

ответ

0

две вещи:

  1. Вместо того TotalCash= поставил as TotalCash после end в заявлении дела.

  2. Логика корпуса выключена. Если Cash out <> 0 и [Cash Counter Cash In] = 0, он вернет [Cash Counter Cash Out], который, я считаю, не является тем, что требуется.

поэтому используйте:

drop view danburycomp 
go 
create view danburycomp as 
select *, 
case 
    when[Cash Out]=0 and [Cash Counter Cash In]<>0 then [Cash Counter Cash In] 
    when [Cash Out]=0 and[Cash Counter Cash In]=0 then [Cash Counter Cash Out] 
    else [Cash Out] 
end as TotalCash 
from [Trans Jan-Mar2016] 
where [Account Number] in ('UNIQUEID1', 'UNIQUEID2') 
and ([Cash Into Trans] !=0 or [Cash Out]!=0) 
and [Date Time Trans] between '2016-01-29' and '2016-02-24'