Fórum Junção de Varias Tabelas #45478

13/07/2004

0

oLA PESSOAL...

Estou tentando fazer a junção de cinco tabelas, mas não sei motar o select. Peciso da ajuda de voces. Abaixo ´os selects´ que estou tentando, mas não estou conseguido fazer a junção. Preciso que o retorno seja da seguinte forma:

Id_produto |descrição_detalhada| data_entrada |Quan_Entrada| total_Entrada| data_SAida|Quant_Saida| Total_saida


Primeiramente tentei:
SELECT I.ID_PRODUTO, P.descricao_detalhada, v.data_saida, e.data_inclusao ,
CAST(SUM(IE.QUANT_PRODUTO)AS NUMERIC(8,2)) AS QUANT_ENTRADA,
CAST(SUM(I.QUANT_PRODUTO)AS NUMERIC(8,2)) AS QUANT_SAIDA,
SUM(IE.VALOR_TOTAL) AS TOTAL_ENTRADA,
SUM(I.VALOR_TOTAL) AS TOTAL_SAIDA
FROM PRODUTOS P, SAIDAS_PRODUTOS V , ITENS_SAIDAS I , entradas_produtos e , itens_entradas IE
where p.id = i.id_produto or p.id =i.id_produto and v.id = i.id and e.id = i.id
GROUP BY v.data_saida, e.data_inclusao, I.ID_PRODUTO, P.descricao_detalhada;


Depois tentei:
SELECT I.ID_PRODUTO, P.descricao_detalhada,v.data_saida, e.data_inclusao,
CAST(SUM(IE.QUANT_PRODUTO)AS NUMERIC(8,2)) AS QUANT_ENTRADA,
CAST(SUM(I.QUANT_PRODUTO)AS NUMERIC(8,2)) AS QUANT_SAIDA,
SUM(IE.VALOR_TOTAL) AS TOTAL_ENTRADA,
SUM(I.VALOR_TOTAL) AS TOTAL_SAIDA
FROM PRODUTOS P,
left outer join entradas_produtos E on ( e.id = ie.id),
left outer join itens_entradas IE on ( ie.id_produto = p.id),
left outer join SAIDAS_PRODUTOS V on ( V.id = i.id),
left outer join ITENS_SAIDAS I on ( ie.id_produto = p.id),
where P.id = I.id_produto or P.ID = IE.id_produto
GROUP BY v.data_saida, e.data_inclusao,I.ID_PRODUTO, P.descricao_detalhada;

e não obtive sucesso.

Estou estudando sql, para ver se consigo montar, mas não encontro material que esclareça as minhas duvidas. Até agora só encontrei exemplos com duas tabelas utilizando ´inner join´ e poucas informações sobre left outer join.

Preciso que somente os produtos que tiverem entrada ou saida esteja no resultado, agrupados pela data.

Abraço a todos...


Siro

Siro

Responder

Posts

13/07/2004

Afarias

>> FROM PRODUTOS P,
>> left outer join entradas_produtos E on ( e.id = ie.id),

Não tem vírgula entre os JOINs ::

SELECT

FROM produtos P,
LEFT JOIN itens_entradas IE ON (IE.id_produto = P.id)
LEFT JOIN entradas_produtos E ON (E.id = IE.id)
LEFT JOIN itens_saidas I ON (I.id_produto = P.id)
LEFT JOIN saidas_produtos V ON (V.id = I.id)

WHERE
GROUP BY


cada left [outter] join pode ser substituído por um right [outter] join, full [outter] join ou inner join



T+


Responder

Gostei + 0

Utilizamos cookies para fornecer uma melhor experiência para nossos usuários, consulte nossa política de privacidade.

Aceitar