Usamos cookies para medir audiência e melhorar sua experiência. Você pode aceitar ou recusar a qualquer momento. Veja sobre o iMasters.
Boa tarde galera, tenho uma duvida que já pesquisei e não achei nada semelhante.
Tenho uma tabela de vendedores e uma tabela de pedidos e gostaria de listar todos os clientes desse vendedor, porem preciso que nessa lista saia todos os clientes que efetuaram venda e os que nao efetuaram venda tambem.
Sendo assim ficaria assim...
cod | Cliente | Total Venda
10 Maria 100,00
55 Antonio 256,00
60 Jose 0,00
66 Tiririca 30,00
67 Alceu 0,00
90 Perone 0,00
O que ja pesquisei e até fiz, me resulta apenas os clientes que obtiveram venda.
Obrigado
Caro Motta, obrigado pela sugestão, mas não resolveu meu caso,
andei esfriando a cabeça e pode pensar em uma outra possibilidade que funcionou...
segue abaixo o cod para futuras pesquisas...
Esse resultado abaixo irá listar todas as vendas de um determinado vendedor exibindo apenas o total por mês, mesmo que nao haja venda será exibido o valor zero.
SELECT
PCCLIENT.codusur1, -- cod do vendedor - tabela de clientes
PCCLIENT.codcli,
PCCLIENT.cliente,
PCCLIENT.fantasia,
PCFORNEC.codfornec, --cod fornecedor - tabela de fornecedor
PCFORNEC.fornecedor,
ROUND(SUM(DECODE(TO_CHAR(PCPEDI.DATA,'MM'),'01',(NVL(PCPEDI.pvenda*PCPEDI.qt,0)),0)),2) AS JANEIRO,
ROUND(SUM(DECODE(TO_CHAR(PCPEDI.DATA,'MM'),'02',(NVL(PCPEDI.pvenda*PCPEDI.qt,0)),0)),2) AS FEVEREIRO,
ROUND(SUM(DECODE(TO_CHAR(PCPEDI.DATA,'MM'),'03',(NVL(PCPEDI.pvenda*PCPEDI.qt,0)),0)),2) AS MARÇO,
ROUND(SUM(DECODE(TO_CHAR(PCPEDI.DATA,'MM'),'04',(NVL(PCPEDI.pvenda*PCPEDI.qt,0)),0)),2) AS ABRIL,
ROUND(SUM(DECODE(TO_CHAR(PCPEDI.DATA,'MM'),'05',(NVL(PCPEDI.pvenda*PCPEDI.qt,0)),0)),2) AS MAIO,
ROUND(SUM(DECODE(TO_CHAR(PCPEDI.DATA,'MM'),'06',(NVL(PCPEDI.pvenda*PCPEDI.qt,0)),0)),2) AS JUNHO,
ROUND(SUM(DECODE(TO_CHAR(PCPEDI.DATA,'MM'),'07',(NVL(PCPEDI.pvenda*PCPEDI.qt,0)),0)),2) AS JULHO,
ROUND(SUM(DECODE(TO_CHAR(PCPEDI.DATA,'MM'),'08',(NVL(PCPEDI.pvenda*PCPEDI.qt,0)),0)),2) AS AGOSTO,
ROUND(SUM(DECODE(TO_CHAR(PCPEDI.DATA,'MM'),'09',(NVL(PCPEDI.pvenda*PCPEDI.qt,0)),0)),2) AS SETEMBRO,
ROUND(SUM(DECODE(TO_CHAR(PCPEDI.DATA,'MM'),'10',(NVL(PCPEDI.pvenda*PCPEDI.qt,0)),0)),2) AS OUTUBRO,
ROUND(SUM(DECODE(TO_CHAR(PCPEDI.DATA,'MM'),'11',(NVL(PCPEDI.pvenda*PCPEDI.qt,0)),0)),2) AS NOVEMBRO,
ROUND(SUM(DECODE(TO_CHAR(PCPEDI.DATA,'MM'),'12',(NVL(PCPEDI.pvenda*PCPEDI.qt,0)),0)),2) AS DEZEMBRO,
ROUND(SUM(NVL(PCPEDI.QT*PCPEDI.pvenda,0)),2) TOTAL
FROM PCCLIENT LEFT OUTER JOIN
(SELECT PCPEDI.codcli,PCPEDI.QT,PCPEDI.pvenda,PCPEDI.data,PCPEDI.codprod FROM PCPEDI LEFT OUTER JOIN
PCPRODUT ON PCPRODUT.codprod=PCPEDI.codprod LEFT OUTER JOIN
PCFORNEC ON PCPRODUT.codfornec=PCFORNEC.codfornec WHERE PCPEDI.data BETWEEN '01-JAN-2013' AND '28-NOV-2013' AND PCFORNEC.codfornec=28)
PCPEDI ON PCCLIENT.codcli=PCPEDI.codcli LEFT OUTER JOIN
PCUSUARI ON PCCLIENT.codusur1=PCUSUARI.codusur LEFT OUTER JOIN
PCSUPERV ON PCUSUARI.codsupervisor=PCSUPERV.codsupervisor LEFT OUTER JOIN
PCPRODUT ON PCPRODUT.codprod=PCPEDI.codprod LEFT OUTER JOIN
PCFORNEC ON PCPRODUT.codfornec=PCFORNEC.codfornec
WHERE PCCLIENT.codusur1=115
--PCSUPERV.codsupervisor=11
GROUP BY
PCCLIENT.codusur1,
PCCLIENT.codcli,
PCCLIENT.cliente,
PCCLIENT.fantasia,
PCFORNEC.codfornec,
PCFORNEC.fornecedor
ORDER BY
PCCLIENT.codusur1, PCCLIENT.codcli
/*
TABELAS UTILIZADAS
PCCLIENT = CLIENTE
PCPRODUT = PRODUTO
PCUSUARI = VENDEDOR
PCSUPERV = SUPERVISOR
PCPEDI = ITENS DO PEDIDO
PCFORNEC = FORNECEDOR
*/
OBS: SERÃO EXIBIDOS TODOS OS CLIENTES DA CARTEIRA DO VENDEDOR.
Beleza
http://forum.imasters.com.br/topic/481977-select-cruzando-dados/