JUNTAR DOIS SELECT COM WHERE DIFERENTES

30/05/2020

0

Não sou programador, apenas me arrisco a fazer uns códigos que auxiliam na gestão da minha empresa. Entendo muito pouco.

Preciso levantar do meu banco de dados as vendas por vendedor e criar uma tabela que irá atualizar de tempos em tempos para gerir metas. Consegui fazer os códigos mas não consegui uni-los em um só.


SELECT VENDEDOR,
SUM(VALORPRODUTO) AS TOTAL,
SUM(DESCONTO) AS DESCONTO,
COUNT(DISTINCT NUMERO) AS NVENDAS
FROM DBCONTCOR
WHERE TIPO_VENDA < 6
AND DATA = ''30.05.2020''
AND LOJA = 1
GROUP BY VENDEDOR

Ele me retorna algo assim:
VENDEDOR TOTAL DESCONTO NVENDAS
23 ---------------388,19 --------0,00 ------------10
34 ---------------538,88 --------5,00 ------------21
40 ---------------1060,00--------13,20 ------------21
44 ---------------1275,90 --------20,02 -----------20
77 ---------------863,84 --------21,22 -----------10

O outro código é da mesma tabela, o que muda é o tipo_venda que neste segundo são as devoluções feitas por vendedor. Preciso dessas colunas, à direita das colunas da fórmula anterior. Se não houver devolução o valor vir 0,00.

SELECT VENDEDOR,
SUM(VALORPRODUTO) AS TOTALDEV,
COUNT(DISTINCT NUMERO) AS NVENDASDEV,
SUM(DESCONTO) AS DESCONTOSDEV
FROM DBCONTCOR
WHERE TIPO_VENDA = 7
AND DATA = ''30.05.2020''
AND LOJA = 1
GROUP BY VENDEDOR

RESULTADO DA SEGUNDA:

VENDEDOR TOTALDEV NVENDASDEV DESCONTOSDEV
77 ---------------4,20 ---------------1 ---------------0,42
113 ---------------21,40 ---------------1 ---------------0


Preciso que o retorno em uma seja algo como:

VENDEDOR TOTAL DESCONTO NVENDAS TOTALDEV NVENDASDEV DESCONTOSDEV
23 ---------------388,19 --------0,00 ------------10 ---------------0 ---------------0 ---------------0
34 ---------------538,88 --------5,00 ------------21 ---------------0 ---------------0 ---------------0
40 ---------------1060,00--------13,20 ------------21 ---------------0 ---------------0 ---------------0
44 ---------------1275,90 --------20,02 -----------20 ---------------0 ---------------0 ---------------0
77 ---------------863,84 --------21,22 -----------10 ---------------4,20 ---------------1 ---------------0,42
113 ---------------0 ----------------0 -------------------0 ---------------21,40 ---------------1 ---------------0


Alguém pode me ajudar?
Rodrigo

Rodrigo

Responder

Posts

02/06/2020

Emerson Nascimento

Veja se assim funciona:
SELECT
  VENDEDOR,
  SUM(CASE WHEN TIPO_VENDA <= 6 THEN VALORPRODUTO ELSE 0 END) AS TOTAL,
  SUM(CASE WHEN TIPO_VENDA <= 6 THEN DESCONTO ELSE 0 END) AS DESCONTO,
  COUNT(DISTINCT (CASE WHEN TIPO_VENDA <= 6 THEN NUMERO ELSE NULL END)) AS NVENDAS,
  SUM(CASE WHEN TIPO_VENDA = 7 THEN VALORPRODUTO ELSE 0 END) AS TOTALDEV,
  COUNT(DISTINCT (CASE WHEN TIPO_VENDA = 7 THEN NUMERO ELSE NULL END)) AS NVENDASDEV,
  SUM(CASE WHEN TIPO_VENDA = 7 THEN DESCONTO ELSE 0 END) AS DESCONTOSDEV
FROM DBCONTCOR
WHERE DATA = ''''30.05.2020''''
AND LOJA = 1
GROUP BY VENDEDOR
Responder

02/06/2020

Rodrigo

Veja se assim funciona:
SELECT
  VENDEDOR,
  SUM(CASE WHEN TIPO_VENDA <= 6 THEN VALORPRODUTO ELSE 0 END) AS TOTAL,
  SUM(CASE WHEN TIPO_VENDA <= 6 THEN DESCONTO ELSE 0 END) AS DESCONTO,
  COUNT(DISTINCT (CASE WHEN TIPO_VENDA <= 6 THEN NUMERO ELSE NULL END)) AS NVENDAS,
  SUM(CASE WHEN TIPO_VENDA = 7 THEN VALORPRODUTO ELSE 0 END) AS TOTALDEV,
  COUNT(DISTINCT (CASE WHEN TIPO_VENDA = 7 THEN NUMERO ELSE NULL END)) AS NVENDASDEV,
  SUM(CASE WHEN TIPO_VENDA = 7 THEN DESCONTO ELSE 0 END) AS DESCONTOSDEV
FROM DBCONTCOR
WHERE DATA = ''''30.05.2020''''
AND LOJA = 1
GROUP BY VENDEDOR


Funcionou perfeitamente! Muito obrigado!!!!
Responder

Que tal ter acesso a um e-book gratuito que vai te ajudar muito nesse momento decisivo?

Ver ebook

Recomendado pra quem ainda não iniciou o estudos.

Eu quero
Ver ebook

Recomendado para quem está passando por dificuldades nessa etapa inicial

Eu quero

Utilizamos cookies para fornecer uma melhor experiência para nossos usuários, consulte nossa política de privacidade.

Aceitar