1
resposta

VENDA VÁLIDA

Assim como mencionado pelo Thiago no tópico ERRO NO CAMPO VOLUME DE COMPRA, seguindo à risca o código do professor, obtemos apenas o resultado VENDA VÁLIDA, pois o [VOLUME DE COMPRA] é 10x maior o que a [QUANTIDADE_MES] . Para resolver tal problema é necessário DIVIDIR o valor de [VOLUME DE COMPRA] por 10. Abaixo segue o código sem e com a alteração:

Sem:

SELECT AUX1.NOME, AUX1.ANO_MES, AUX1.QUANTIDADE_MES,
CASE    
    WHEN AUX1.QUANTIDADE_MES <= AUX1.[VOLUME DE COMPRA] THEN 'VENDA VÁLIDA' 
    WHEN AUX1.QUANTIDADE_MES > AUX1.[VOLUME DE COMPRA] THEN 'VENDA INVÁLIDA'
END AS STATUS_VENDA
FROM
(SELECT TC.NOME, CQ.ANO_MES, CQ.QUANTIDADE_MES, TC.[VOLUME DE COMPRA]
FROM (SELECT NF.CPF, SUBSTRING(CONVERT(VARCHAR, NF.[DATA], 120),1,7) AS ANO_MES, 
SUM(INF.[QUANTIDADE]) AS QUANTIDADE_MES 
FROM [NOTAS FISCAIS] NF INNER JOIN [ITENS NOTAS FISCAIS] INF
ON NF.NUMERO = INF.NUMERO
GROUP BY NF.CPF, SUBSTRING(CONVERT(VARCHAR, NF.[DATA], 120),1,7)) AS CQ
INNER JOIN [TABELA DE CLIENTES] AS TC
ON TC.CPF = CQ.CPF) AUX1
ORDER BY AUX1.NOME, AUX1.ANO_MES

com:

SELECT AUX1.NOME, AUX1.ANO_MES, AUX1.QUANTIDADE_MES,
CASE    
    WHEN AUX1.QUANTIDADE_MES <= (AUX1.[VOLUME DE COMPRA]/10) THEN 'VENDA VÁLIDA' 
    WHEN AUX1.QUANTIDADE_MES > (AUX1.[VOLUME DE COMPRA]/10) THEN 'VENDA INVÁLIDA'
END AS STATUS_VENDA
FROM
(SELECT TC.NOME, CQ.ANO_MES, CQ.QUANTIDADE_MES, TC.[VOLUME DE COMPRA]
FROM (SELECT NF.CPF, SUBSTRING(CONVERT(VARCHAR, NF.[DATA], 120),1,7) AS ANO_MES, 
SUM(INF.[QUANTIDADE]) AS QUANTIDADE_MES 
FROM [NOTAS FISCAIS] NF INNER JOIN [ITENS NOTAS FISCAIS] INF
ON NF.NUMERO = INF.NUMERO
GROUP BY NF.CPF, SUBSTRING(CONVERT(VARCHAR, NF.[DATA], 120),1,7)) AS CQ
INNER JOIN [TABELA DE CLIENTES] AS TC
ON TC.CPF = CQ.CPF) AUX1
ORDER BY AUX1.NOME, AUX1.ANO_MES

Fazendo essa alteração o código funciona perfeitamente. Peço aos professores que corrijam, ou ao menos atualizem o banco para saciar esse problema.

1 resposta

Oii Raphael, tudo bom?

Obrigada por compartilhar essa solução paliativa conosco e desculpa pela demora em responder.

No momento, irei atualizar o código no Mãos na Massa para que possa ajudar os alunos, mas pedirei para que atualize o banco para sanar o problema.

Qualquer coisa estou à disposição :)