[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