UNIR 3 TABELAS E USAR O GROUP BY E O ORDER BY
Possuo essa SQL abaixo funcionando perfeitamente:
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 ?
[Ô]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 ?
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 [Ô]
é 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)[Ô]
[Ô]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)[Ô]
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)[ô]
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)[ô]
ALGUEM ?
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.
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