Я использую SQL Server 2008. У меня есть продажи для клиентов, и я хочу сравнить их с тем, что клиент купил в прошлом году, а также рассчитать рост. Все работает нормально, но как только у клиента есть отрицательный результат в течение одного месяца, он возвращает неверные данные для Target & Growth.Сумма отрицательных и положительных чисел
Customer SalesLastYearMonth SalesThisYearMonth Target Growth
------------------------------------------------------------------------------
abcd -1 15 ???? ???
Код:
SELECT
Customer,
CASE
WHEN SalesThisYearMonth IS NULL THEN (SalesLastYearMonth * -1)
WHEN SalesLastYearMonth IS NULL THEN SalesThisYearMonth
ELSE SalesThisYearMonth - SalesLastYearMonth END as Target,
CASE
WHEN SalesThisYearMonth IS NULL THEN -1
WHEN SalesLastYearMonth IS NULL THEN 1
WHEN SalesThisYearMonth = 0 then -1
WHEN SalesLastYearMonth = 0 then 1
ELSE (SalesThisYearMonth - SalesLastYearMonth)/SalesLastYearMonth END AS Growth
Можете ли вы привести пример ошибки и ожидаемого результата, который вы не получаете? –
@abatishchev спасибо за хорошее редактирование! – Wilest
@Ivan G Я получаю следующее: Цель: 16.000, рост: -16.000000 – Wilest