Как я могу заменить отрицательные значения в этом столбце на 0 - PullRequest
0 голосов
/ 05 апреля 2019
SUM([X Limited$Detailed Cust_ Ledg_ Entry].[Amount (LCY)]) AS DAmount

как я могу заменить отрицательные значения на 0 в этом столбце, который я пробовал

select sUM(IF ([X Limited$Detailed Cust_ Ledg_ Entry].[Amount (LCY)]  < 0, 0, X Limited$Detailed Cust_ Ledg_ Entry].[Amount (LCY)] )) as DAmount

Ответы [ 4 ]

1 голос
/ 05 апреля 2019

Вы можете использовать случай, когда

select sum(case when [X Limited$Detailed Cust_ Ledg_ Entry].[Amount (LCY)] >0 
  then [X Limited$Detailed Cust_ Ledg_ Entry].[Amount (LCY)]  end ) as DAmount
0 голосов
/ 05 апреля 2019

Я заметил, что есть несколько ответов с инструкциями по случаю, но есть еще один вариант, который может вас заинтересовать (с помощью предложения where).

Select SUM([X Limited$Detailed Cust_ Ledg_ Entry].[Amount (LCY)]) AS DAmount
FROM Table
Where [X Limited$Detailed Cust_ Ledg_ Entry].[Amount (LCY)]>0
0 голосов
/ 05 апреля 2019

вариант использования, когда

select case when SUM([X Limited$Detailed Cust_ Ledg_ Entry].[Amount (LCY)])<0 then 0 else SUM([X Limited$Detailed Cust_ Ledg_ Entry].[Amount (LCY)]) end
  AS DAmount
0 голосов
/ 05 апреля 2019

Используйте выражение case:

(CASE WHEN SUM([X Limited$Detailed Cust_ Ledg_ Entry].[Amount (LCY)]) > 0
      THEN SUM([X Limited$Detailed Cust_ Ledg_ Entry].[Amount (LCY)])
      ELSE 0
 END) AS DAmount
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...