[firebase-br] Duvida Com Joins

evandrobastiani2 evandrobastiani2 em ig.com.br
Seg Maio 2 16:55:38 -03 2005


Vou tentar me explicar melhor...... 

Tabelas Usadas....  Produtos, ItensVendidos 

1º Preciso exibir todos os produtos e o total de sua vendas.... 
Solução............. 
SELECT P.Produto, sum (V.QUANT*V.VUNIT) 
FROM Produtos P 
LEFT OUTER JOIN ItensVendidos V 
ON P.Codigo = V.CPRO 
Group by 1 ORDER BY 1 

2º Exibir exibir todos os produtos e o total de sua vendas com um filtro de 
data nas Vendas 
Solução............. 
SELECT P.Produto, sum (V.QUANT*V.VUNIT) 
FROM Produtos P 
LEFT OUTER JOIN ItensVendidos V 
ON P.Codigo = V.CPRO and V.Data = '03/05/2005' 
Group by 1 ORDER BY 1 


agora esse terçeiro caso não consigo resolver.... 

Tabelas usadas..... Produtos --->ItensVendidos--->Transportadora.... 
obs: o Tabela de transportadora está relacionada com ItensVendidos.... 

3º Exibir exibir todos os produtos e o total de sua vendas com um filtro de 
data nas Vendas e filtrar pela Razão da Transportadora da tabela de 
Transportadoras.......Naum consigo.... 
..... 

Se eu fizer dessa maneira... naum está fucionando... 

SELECT P.Produto, sum (V.QUANT*V.VUNIT) 
FROM Produtos P 
LEFT OUTER JOIN ItensVendidos V 
ON P.Codigo = V.CPRO and V.Data = '03/05/2005' 
LEFT OUTER JOIN Transportadoras T     <<<<<--------------- 
ON T.Codigo = V.CTRA and T.Razao = 'TRANSPORTE' 
Group by 1 ORDER BY 1 

Acho que consegui ser bem claro...... 
Abraços...... 




<b>ED</b> 

Não vejo problemas !!! 

O join ou left join é a mesma coisa... 

select * 
from tabela A 
left join tabela B on (a.campo = b.campo) and (b.data between :data1 and 
data2) 
left join tabela C on (b.campo =c.campo) 
.... 


----- Original Message ----- From: "evandrobastiani2" 
<evandrobastiani2 em ig.com.br> 
To: <lista em firebase.com.br> 
Sent: Monday, May 02, 2005 3:54 PM 
Subject: Re: [firebase-br] Duvida Com Joins 


Deu um erro no Segundo SubSelect..... quando vc comparou a tabela V.... 
(V.Codigo = D.CIten).... V.Codigo não existe..... 
pq ele só foi apontado no Primeiro SuBelect.. 

Como resolve isso ? 
Mais acho que estamos no caminho certo.... Valeu Amigo.. 



---------------------------------------------------------------- Bom, aí a 
história é outra... 

Como você precisa de dados divergentes, a solução seria realizar o SUM 
dentro de um Sub-select. 

SELECT P.Produto, 
(Select sum(V.QUANT*V.VUNIT) from Itens V where P.Codigo = V.CPRO and V.Data 
='01/04/2005' ) as Total_Itens, 
(Select sum(D.pagamentos) from Duplicatas D where V.Codigo = D.CIten and 
D.Pagamento is null) as valor_pagar 
FROM Produtos P 
ORDER BY P.Produto 

[s] 

========================== 
Eduardo Jedliczka 
Gerasoft Informática 
Apucarana - Pr 
========================== 

----- Original Message ----- From: "evandrobastiani2" 
<evandrobastiani2 em ig.com.br> 
To: <lista em firebase.com.br> 
Sent: Monday, May 02, 2005 2:21 PM 
Subject: [firebase-br] Duvida Com Joins 



A duvida Abaixo resolvi da seguinte forma.. segundo um amigo da Lista 

SELECT P.Produto, sum (V.QUANT*V.VUNIT) 
FROM Produtos P 
LEFT OUTER JOIN Itens V 
ON P.Codigo = V.CPRO and V.Data ='01/04/2005' 
Group by 1 ORDER BY 1 

Sql Acima funciona perfeitamente.... 
mais e se alem disso.... quiser verificar na Tabela de "DUPLICATAS" se a 
parcela já foi paga ?????   Ai ferra tudo... fiz da maneira abaixo e naum 
consegui resolver, pois o valor não muda nada..... ....Espero que em 
ajudem.. Abraços 


SELECT P.Produto, sum (V.QUANT*V.VUNIT) 
FROM Produtos P 
LEFT OUTER JOIN Itens V 
ON P.Codigo = V.CPRO and V.Data ='01/04/2005' 
LEFT OUTER JOIN Duplicatas D                    <<<<<<<<<<<<<<< 
ON V.Codigo = D.CIten and D.Pagamento is null 
Group by 1 ORDER BY 1 




abaixo está a Duvida anterior resolvida por um Amigo da Lista 
----------------------------------------------------------------- 

24/04/2005 

To com uma duvida em uma consulta.....pra vcs devem ser moleza 

´Tenho a tabela de produtos com 10 produtos cadastrados..... 
e uma tabela de Itens Vendidos........ 
tenho que listar todos os itens da tabela de produtos e mostrar a soma da 
venda na tabela de Vendas..... até ai tudo bem...uso essa SQL é da certo 

SELECT P.Produto, sum (V.QUANT*V.VUNIT) 
FROM Produtos P 
LEFT OUTER JOIN Itens V 
ON P.Codigo = V.CPRO 
Group by 1 ORDER BY 1 


O problema se dá quando eu tento filtrar por data da venda.....faço 

assim... 

SELECT P.Produto, sum (V.QUANT*V.VUNIT) 
FROM Produtos P 
LEFT OUTER JOIN Itens V 
ON P.Codigo = V.CPRO 
where V.Data ='01/04/2005'   //<<<<<<<<<<<<<<<<<<<<<<<<< 
Group by 1 ORDER BY 1 

Ai não mostra mais os 10 produtos.... só mostra os que tiverem vendas no 

Dia 
    especificado..... 
alguem pode me ajudar ? 



Mais detalhes sobre a lista de discussão lista