1
resposta

NOS CAMPOS STATUS_VENDAS SÓ DEU A INFORMAÇÃO DE 'VENDA VÁLIDA' EM TODOS

NOS CAMPOS STATUS_VENDAS SÓ DEU A INFORMAÇÃO DE 'VENDA VÁLIDA' EM TODOS, O QUE EU ERREI ?

ALGUEM PODE ME AJUDAR?

OBRIGADA!!

   SELECT  AUX.NOME,AUX.ANO_MÊS, AUX.QUANTIDADE,
       CASE WHEN AUX.QUANTIDADE <= AUX.[VOLUME DE COMPRA]THEN 'VENDA VÁLIDA'
       WHEN AUX.QUANTIDADE > AUX.[VOLUME DE COMPRA]THEN 'VENDA INVÁLIDA'
       END AS STATUS_VENDAS

       FROM

 (SELECT CQ.QUANTIDADE, CQ.ANO_MÊS, TC.NOME,TC.[VOLUME DE COMPRA]
FROM

       (SELECT NF.CPF,
         SUBSTRING (CONVERT (VARCHAR, NF.[DATA], 120), 1,7) AS ANO_MÊS, 
         SUM (INF.QUANTIDADE)AS QUANTIDADE, INF.NUMERO 
          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), INF.NUMERO)CQ
       INNER JOIN [TABELA DE CLIENTES]TC
       ON TC.CPF=CQ.CPF)AUX

       ORDER BY AUX.NOME,AUX.ANO_MÊS
1 resposta

Olá Débora!

Você colocou INF.NUMERO no GROUP BY. Todas as vendas são válidas porque com os dados que tem a quantidade por mês não ultrapassa o volume. Se você diminuir o volume de algum cliente, vai aparecer o status de venda inválida.

SELECT NF.CPF,
         SUBSTRING (CONVERT (VARCHAR, NF.[DATA], 120), 1,7) AS ANO_MÊS, 
         SUM (INF.QUANTIDADE)AS QUANTIDADE,`** INF.NUMERO **`
          FROM [NOTAS FISCAIS]NF

GROUP BY NF.CPF,SUBSTRING (CONVERT (VARCHAR, NF.[DATA], 120), 1,7),** INF.NUMERO**)CQ

Fica assim...

SELECT  AUX.NOME,AUX.ANO_MÊS, AUX.QUANTIDADE,
       CASE WHEN AUX.QUANTIDADE <= AUX.[VOLUME DE COMPRA]THEN 'VENDA VÁLIDA'
       WHEN AUX.QUANTIDADE > AUX.[VOLUME DE COMPRA]THEN 'VENDA INVÁLIDA'
       END AS STATUS_VENDAS

       FROM

 (SELECT CQ.QUANTIDADE, CQ.ANO_MÊS, TC.NOME,TC.[VOLUME DE COMPRA]
FROM

       (SELECT NF.CPF,
         SUBSTRING (CONVERT (VARCHAR, NF.[DATA], 120), 1,7) AS ANO_MÊS, 
         SUM (INF.QUANTIDADE)AS QUANTIDADE
          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)) CQ
       INNER JOIN [TABELA DE CLIENTES]TC
       ON TC.CPF=CQ.CPF)AUX

       ORDER BY AUX.NOME,AUX.ANO_MÊS