Как я могу собрать столбец битов? - PullRequest
0 голосов
/ 22 апреля 2020

У меня есть этот запрос:

SELECT 
    MAX(P.Descricao) AS Name,  
    SUM(FC.Credito) AS Sales,
    CAST(CASE
            WHEN FC.Troco = 1 THEN SUM(FC.Debito)
            ELSE 0 
         END AS decimal(10, 2)) AS Purchases
FROM 
    FluxoCaixa FC 
INNER JOIN
    Pagamento P ON FC.ID_Pagamento = P.Pagamento

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

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

Я знаю, что возвращается ошибка, поскольку столбец FC.Troco не агрегируется, но как мне агрегировать столбец, значения которого являются битовыми?

В CASE-WHEN я хочу, чтобы SUM(FC.Debito) case FC.Troco было 1 (true).

1 Ответ

3 голосов
/ 22 апреля 2020

Я думаю, вы хотите условное агрегирование:

SELECT MAX(P.Descricao) AS Name,  SUM(FC.Credito) AS Sales,
       SUM(CASE WHEN FC.Troco = 1 THEN FC.Debito ELSE 0 END) AS Purchases
FROM FluxoCaixa FC INNER JOIN
     Pagamento P
     ON Fc.ID_Pagamento = P.Pagamento;
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...