[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