[firebase-br] resolucao de query
Artur Sanfins
artur.gmane em tcimix.com
Qua Dez 3 15:49:49 -03 2008
A idéia é esta, isto é uma curva abc.
No entando, estou usando o Interbase 6.0 (cliente), parte do select dentro
do primeiro select não esta sendo reconhecida, diz coluna invalida.
outra coisa, como isto é um resumo dos produtos, a lista final deve ser
produto a produto, ou seja talvez o uso de distinct.
Fazendo as querys separadas, ou seja uma soma, e outra vincula o movimento
com o cadastro funciona, mas não tornaria o resultado, absolutamente ONLINE,
pois o movimento é grande e corre-se o risco de entre uma listagem em tela e
outra, haver grande divergencia, assim o ideal seria como voce fez.
grato
Artur
"Sandro Souza" <escovadordebits em gmail.com>
escreveu na mensagem
news:64d5939a0812030838n23c21d25q83f92b06f84f363a em mail.gmail.com...
Bom dia/tarde Artur.
Acredito que faltou informar algum campo de data na tabela "MOV", caso
contrário, como filtrar por período?
Mas vamos supor que esse campo de data exista e que se chame "datamov".
Tente esse código SQL:
select
c.produto,
c.descricao,
sum(m.quantidade) quantidade,
sum(m.valor),
x.valor_total,
(x.valor_total/sum(m.valor)) relacao
from
cad c,
mov m,
(select
sum(valor) valor_total
from
mov
where
(datamov between '2008-02-01' and '2008-03-30')) x
where
(m.datamov between '2008-02-01' and '2008-03-30') and
(c.produto = m.produto) and
(x.produto = m.produto)
group by
c.produto,
c.descricao,
x.valor_total
Nesse caso, coloquei um período de 01/02/2008 até 30/03/2008, apenas para
exemplificar.
O SELECT mais interno, retorna apenas o somatório de todos os valores de
todos os produtos dentro do período informado.
Corrija-me se eu estiver enganado, mas a sua intenção era a de retornar o
percentual do valor daquele produto em relação ao valor total de todos os
produtos na última coluna?
Se for, então tem que refazer esse cálculo, que seria:
((sum(m.valor)*100)/x.valor_total)
percentual.
Espero ter ajudado mais que atrapalhado. :D
2008/12/3 Artur Sanfins
<artur.gmane em tcimix.com>
> cenário:
> MOV: produto,quantidade, valor
> CAD:produto,descricao
> como criar uma query que liste assim:
>
> produto,descricao, (soma de quantidade no periodo),(soma de valor no
> periodo(1)),(soma de todos os produtos em valor(2)),( resultado (2)/(1))
>
> como resolver ?
>
> grato por sugestões
>
> Artur
>
>
>
>
>
>
> ______________________________________________
> FireBase-BR (www.firebase.com.br) - Hospedado em www.locador.com.br
> Para saber como gerenciar/excluir seu cadastro na lista, use:
> http://www.firebase.com.br/fb/artigo.php?id=1107
> Para consultar mensagens antigas: http://firebase.com.br/pesquisa
>
______________________________________________
FireBase-BR (www.firebase.com.br) - Hospedado em www.locador.com.br
Para saber como gerenciar/excluir seu cadastro na lista, use:
http://www.firebase.com.br/fb/artigo.php?id=1107
Para consultar mensagens antigas: http://firebase.com.br/pesquisa
Mais detalhes sobre a lista de discussão lista