Em 01/04/11, Osvaldo Kussama<[email protected]> escreveu: > Em 31/03/11, Marcelo Silva (IG)<[email protected]> escreveu: >> Pessoal preciso do seguinte SQL: >> >> Tabela >> CLIENTES >> COD_CLI >> NOME >> >> Tabela Itens >> VENDAS_ITENS >> COD_CLI >> COD_PROD >> QTD >> >> Tabela Balcao >> VENDAS_BALCAO >> COD_CLI >> COD_PROD >> QTD >> >> Preciso trazer todos os clientes que tenha produtos na tabela Itens e >> Balcao >> com a seguinte estrutura: >> >> COC_CLI NOME COD_PROD QTD_ITENS QTD_BALCAO >> 1234 JOSE XXXX 1 0 >> 1235 MARIA YYYY 4 1 >> >> E assim por diante >> >> Veja que na tabela CLIENTES não tem o campo COD_PROD pra que eu consiga >> separar pro produtos dessa forma se eu fizer pelo Left Join ele vai somar >> tudo eu preciso separar a quantidade de produtos na tabela ITENS e BALCAO >> >> To quebrando a cabeça aqui... alguém pode dar uma luz >> > > > Tente fazer um LEFT OUTER JOIN da tabela clientes (USING cod_cli) com > o resultado do FULL OUTER JOIN entre as tabelas itens e balcao (USING > cod_cli e cod_pro). >
Tente assim: SELECT foo.cod_cli, clientes.nome, foo.cod_pro, foo.qtd_itens, foo.qtd_balcao FROM clientes LEFT OUTER JOIN (SELECT itens.cod_cli, itens.cod_pro, coalesce(sum(itens.qtd),0) AS qtd_itens, coalesce(sum(balcao.qtd),0) AS qtd_balcao FROM vendas_itens itens FULL OUTER JOIN vendas_balcao balcao USING (cod_cli, cod_pro) GROUP BY itens.cod_cli, itens.cod_pro) AS foo USING (cod_cli) ORDER BY 1, 3; Osvaldo _______________________________________________ pgbr-geral mailing list [email protected] https://listas.postgresql.org.br/cgi-bin/mailman/listinfo/pgbr-geral
