Ir para conteúdo

POWERED BY:

Arquivado

Este tópico foi arquivado e está fechado para novas respostas.

eronventer

Right Outer Join

Recommended Posts

Olá,

 

Na tabela representada na query (pf_representantes_pulv) nem todos representantes tem cadastrado todos grupos de produtos, mas independente disso preciso listar todos grupos pra ele e sua taxa (coluna pulv), no caso o grupo que ele não tiver vai aparecer a taxa 0, porém não consigo resolver, nesse formato ele acaba me listando no caso do representante 29 apenas 4 registros sendo que o total de grupos é 23.

 

SELECT DISTINCT P.grupo, P.produto, P.pulv FROM pf_representantes_pulv P 
RIGHT OUTER JOIN (pf_representantes_pulv RP) ON (RP.grupo = P.grupo) 
WHERE RP.id_representante = 29 
ORDER BY P.grupo ASC

Compartilhar este post


Link para o post
Compartilhar em outros sites

Se não são listados dados da tabela pf_representantes_pulv e se quer trazer independente de existir ou não nesta tabela , qual a razão do outer join ?

Compartilhar este post


Link para o post
Compartilhar em outros sites

Publique uma descricao das tabelas em questão e como quer os dados exibidos.

Confesso não ter entendido o problema

Compartilhar este post


Link para o post
Compartilhar em outros sites

Beleza, segue abaixo a tabela e um modelo de dados.

 

CREATE TABLE `pf_representantes_pulv` (
  `id_representante` int(11) NOT NULL,
  `id_marca` int(11) NOT NULL,
  `grupo` int(4) NOT NULL,
  `pulv` int(11) NOT NULL,
  `produto` varchar(100) DEFAULT NULL
) ENGINE=InnoDB DEFAULT CHARSET=latin1;
INSERT INTO `pf_representantes_pulv` (`id_representante`, `id_marca`, `grupo`, `pulv`, `produto`) VALUES
(30, 1, 101, 10, 'Arroz Branco T1'),
(30, 2, 101, 100, 'Arroz Branco T1'),
(30, 1, 105, 15, 'Feijão Carioca'),
(30, 1, 201, 50, 'Feijão Preto'),
(29, 1, 101, 100, 'Arroz Branco T1'),
(29, 2, 101, 4, 'Arroz Branco T1'),
(29, 1, 201, 26, 'Arroz Parbolizado'),
(29, 1, 205, 7, 'Feijão Preto'),
(29, 1, 301, 4, 'Arroz Integral');

 

Abaixo segue o modelo de dados que tenho que exibir.

Na verdade o 29 tem 5 registros, mas tenho que exibir 6 pois tenho que mostrar todos grupos com marcas diferentes.

Representante 29
---------------------------------------------
grupo | produto           | marca | pulv
101   | Arroz Branco T1   | 1     | 100
101   | Arroz Branco T1   | 2     | 4
105   | Feijão Carioca    | 1     | 0
201   | Arroz Parbolizado | 1     | 26
205   | Feijão Preto      | 1     | 7
301   | Arroz Integral    | 1     | 4

 

Compartilhar este post


Link para o post
Compartilhar em outros sites

×

Informação importante

Ao usar o fórum, você concorda com nossos Termos e condições.