UNIR 3 TABELAS E USAR O GROUP BY E O ORDER BY

WEBIER 22/10/2010 19:00:18
#355702
Possuo essa SQL abaixo funcionando perfeitamente:
[Ô]SELECT COD_PRODUTO, DESCRICAO, SUM(QUANTIDADE) AS var_Qtda, PRECO, SUM(PRECO * QUANTIDADE) AS var_Total FROM PEDIDOS_ITENS group by COD_PRODUTO, DESCRICAO, PRECO, QUANTIDADE ORDER BY SUM(QUANTIDADE) DESC[Ô]


ela me mostrar no todos os registro agrupados para evitar duplicidade.... até ai tudo bem

agora meu cliente pediu para mostrar TODOS os produtos que um VENDEDOR vendeu:

Então vou ter q unir 3 tabelas: FUNCIONARIO, PEDIDOS, PEDIDOS_ITENS

CAMPOS PARA SEREM RELACIONADOS:

na tabela FUNCIONARIO tenho o campo CODIGO
na tabela PEDIDOS tenho os campos COD_PEDIDO e COD_FUNCIONARIO
na tabela PEDIDOS_ITENS tenho o campo COD_PEDIDO

entao a tabela [txt-color=#e80000]PEDIDOS [/txt-color]seria a tabela que possui os 02 campos que uniria as outras duas tabelas, sendo
PEDIDOS.[txt-color=#e80000]COD_FUNCIONARIO [/txt-color]= FUNCIONARIO.[txt-color=#e80000]CODIGO[/txt-color]
PEDIDOS.[txt-color=#e80000]COD_PEDIDO[/txt-color] = PEDIDOS_ITENS.[txt-color=#e80000]COD_PEDIDO[/txt-color]

entao como ficaria a SQL ?
XXXANGELSXXX 22/10/2010 22:57:32
#355719
to meio sem tempo.. e nao entendi tao direitinho.. mas veja se ajuda..
   
[Ô]select a.campo1,a.campo2,b.campo1,c.campo1,c.campo2 from tabela1 a, tabela2 b, tabela3 c where a.id=b.id and a.id=c.id [Ô]

MARCELO.TREZE 23/10/2010 09:16:01
#355727
é algo mais ou menos assim

[Ô]SELECT FU.codigo, PE.cod_pedido, PE.cod_funcionario,PI.cod_pedido FROM funcionario FU INNER JOIN pedidos PE ON FU.codigo = PE.cod_funcionario (INNER JOIN pedidos_itens PI ON PI.cod_pedido = PE.cod_pedido)[Ô]


WEBIER 23/10/2010 19:13:10
#355755
fiz o q o MARCELO-TREZE falou e deu o seguinte erro:
Erro de sintaxe (operador ausente)ma expressão de consulta [ô]FU.codigo = PE.cod_funcionario (INNER JOIN pedidos_itens PI ON PI.cod_pedido = PE.cod_pedido)[ô]
WEBIER 24/10/2010 22:42:41
#355793
ALGUEM ?
NETMANIA 25/10/2010 12:27:49
#355821
Resposta escolhida
Ola Wbier,

Este seria uma idéia do SQL

SELECT
COD_PRODUTO,
DESCRICAO,
SUM(QUANTIDADE) AS var_Qtda,
PRECO,
SUM(PRECO * QUANTIDADE) AS var_Total
FROM
FUNCIONARIO,
PEDIDOS,
PEDIDOS_ITENS,
WHERE
PEDIDOS.CODIGO = COD_FUNCIONARIO AND
PEDIDOS.CODIGO = PEDIDOS_ITENS.COD_PEDIDO AND
GROUP BY
COD_PRODUTO,
DESCRICAO,
PRECO,
QUANTIDADE
ORDER BY
SUM(QUANTIDADE) DESC

Agora você precisa fazer uma coisa, colocar na frente dos campos (nos trechos do GROUP BY, ORDER BY e SELECT) o nome das tabelas para que o seu gerenciador de banco de dados para trazer os dados, caso ocorra algum erro, envie a mensagem de erro com a maior quantidade de detalhes possível para que possamos analisar o motivo da falha.
Tópico encerrado , respostas não são mais permitidas