[firebase-br] Duvida Com Joins
evandrobastiani2
evandrobastiani2 em ig.com.br
Seg Maio 2 19:32:37 -03 2005
Valeu.... pelos testes que fiz aqui era exatamente isso que eu precisava..
Sobre o porque de eu não usar o código... é que na verdade não é pela Razao
que vou filtrar.... tem uns 5 campos da tabela de Fornecedores que vou
precisar filtrar.... coloquei a razão pra ficar mais entendivel........
Valeu mesmo Eduardo....
Você quer apenas produtos de uma determinada transportadora ????
Bom, vamos lá...
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'
and Exists ( Select First 1 1 From Transportadoras T Where T.Codigo =
V.CTRA and T.Razao = 'TRANSPORTE')
Group by 1 ORDER BY 1
agora ao invés da Razão Social, porque não filtra pelo Código ????
[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 4:55 PM
Subject: Re: [firebase-br] Duvida Com Joins
> 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