SQL Server содержащий случай - PullRequest
1 голос
/ 06 мая 2019

Я сделал этот запрос:

SELECT 
  PRODUCTO,
  CASE
    WHEN TIPOMOV=02 THEN SUM((CANT*-1)/6)
    WHEN TIPOMOV=10 THEN SUM((CANT*-1)/6)
    WHEN TIPOMOV=06 THEN SUM(CANT/6)
  END AS CANTIDAD
FROM MOVPROD
GROUP BY PRODUCTO

но я получаю эту ошибку:

Столбец MOVPROD.TIPOMOV недопустим в списке выбора, поскольку он не содержится ни в статистической функции, ни в предложении GROUP BY.

Сообщение 8120, Уровень 16, Состояние 1, Строка 5

пожалуйста, помогите!

Ответы [ 2 ]

2 голосов
/ 06 мая 2019

Выражение CASE должно быть аргументом SUM():

SELECT PRODUCTO, 
       SUM(CASE WHEN TIPOMOV = '02' THEN (CANT*-1)/6) 
                WHEN TIPOMOV = '10' THEN (CANT*-1)/6) 
                WHEN TIPOMOV = '06' THEN (CANT/6) 
           END) AS CANTIDAD 
FROM MOVPROD 
GROUP BY PRODUCTO;
0 голосов
/ 06 мая 2019

Это должно работать-

SELECT 
PRODUCTO, 
SUM(
    CASE 
        WHEN TIPOMOV = 02 THEN ISNULL((CANT*-1),0)/6) 
        WHEN TIPOMOV = 10 THEN ISNULL((CANT*-1),0)/6) 
        WHEN TIPOMOV = 06 THEN ISNULL((CANT/6),0) 
    END
) AS CANTIDAD 
FROM MOVPROD 
GROUP BY PRODUCTO
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...