[firebase-br] resolucao de query

Sandro Souza escovadordebits em gmail.com
Qua Dez 3 14:38:09 -03 2008


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
>



Mais detalhes sobre a lista de discussão lista