[firebase-br] Duvida sobre first

Anderson infosag em terra.com.br
Sex Fev 29 11:09:51 -03 2008


SUM(TOTAL_CUSTO), SUM(TOTAL_CUSTOMEDIO), SUM(TOTAL_DESCONTOS)
FROM

select

first 3

sum(coalesce((oi.custo+coalesce(oi.desconto,0.00))*oi.qtde,0.00)) as
total_custo,
sum(coalesce((oi.customedio+coalesce(oi.desconto,0.00))*oi.qtde,0.00)) as
total_customedio,
sum(coalesce(coalesce(oi.desconto,0.00)*oi.qtde,0.00)) as total_descontos

from
orcamentos_itens oi
left outer join
orcamentos o
on o.id_orcamento=oi.is_orcamento
left outer join
setores_estoque se
on se.id_setorestoque=oi.is_setorestoque
left outer join
setores_estoque sd
on sd.id_setorestoque=oi.is_setorestoque_destino
left outer join
cfop_operacoes cop
on cop.id_cfopoperacao=o.is_cfopoperacao
left outer join
cfop_vinculo cov
on cov.id_cfopvinculo=o.is_cfopvinculo
left outer join
pessoas p
on p.id_pessoa=o.is_pessoa
left outer join
pessoas t
on t.id_pessoa=oi.is_pessoa
left outer join
pessoas v
on v.id_pessoa=o.is_vendedor
left outer join
pessoas f
on f.id_pessoa=o.is_vendedor
left outer join setores_estoque sf
on sf.id_setorestoque=:id_setor
left outer join orcamentos_itens_grade oig
on oig.is_orcamentoitem=oi.id_orcamentoitem
where 1=1
and oi.codigo=:id_produto
and ((se.id_setorestoque=:id_setor) or (sd.id_setorestoque=:id_setor))
and ((cov.tipo_operacao='E'))


----- Original Message ----- 
From: "Arlei Ferreira Farnetani Junior" <junior em farsoft.com.br>
To: "FireBase" <lista em firebase.com.br>
Sent: Friday, February 29, 2008 11:02 AM
Subject: [firebase-br] Duvida sobre first


Eu utilizo uma tabela que resulta os fields e uma outra query
que resulta o total dos fields acima...gostaria de manter isto
via sql por causa de performance...porém qdo uso
o first na query de fields blz...ele me resulta apenas os 3 registros,
só que na query de total...sem chance, ela me resulta o total de
todos os registros, mesmo eu colocando first 3, por se tratar de
apenas um row (sum)!

como fazer isto entao heim?

select

first 3

sum(coalesce((oi.custo+coalesce(oi.desconto,0.00))*oi.qtde,0.00)) as
total_custo,
sum(coalesce((oi.customedio+coalesce(oi.desconto,0.00))*oi.qtde,0.00)) as
total_customedio,
sum(coalesce(coalesce(oi.desconto,0.00)*oi.qtde,0.00)) as total_descontos,

sum(oi.qtde) as total_Qtde,
sum(
case
 when oi.embalagem_item is null then oi.qtde
 else oi.qtde*oi.embalagem_item
end) qtde_embalagem

from
orcamentos_itens oi
left outer join
orcamentos o
on o.id_orcamento=oi.is_orcamento
left outer join
setores_estoque se
on se.id_setorestoque=oi.is_setorestoque
left outer join
setores_estoque sd
on sd.id_setorestoque=oi.is_setorestoque_destino
left outer join
cfop_operacoes cop
on cop.id_cfopoperacao=o.is_cfopoperacao
left outer join
cfop_vinculo cov
on cov.id_cfopvinculo=o.is_cfopvinculo
left outer join
pessoas p
on p.id_pessoa=o.is_pessoa
left outer join
pessoas t
on t.id_pessoa=oi.is_pessoa
left outer join
pessoas v
on v.id_pessoa=o.is_vendedor
left outer join
pessoas f
on f.id_pessoa=o.is_vendedor
left outer join setores_estoque sf
on sf.id_setorestoque=:id_setor
left outer join orcamentos_itens_grade oig
on oig.is_orcamentoitem=oi.id_orcamentoitem
where 1=1
and oi.codigo=:id_produto
and ((se.id_setorestoque=:id_setor) or (sd.id_setorestoque=:id_setor))
and ((cov.tipo_operacao='E'))



______________________________________________
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