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?
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
Curtir tópico
+ 0
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
Clique aqui para fazer login e interagir na Comunidade :)