if...

27/03/2008

0

Boa tarde, preciso de um relatório que me saia o número de serviços ´individuais´, ou seja, até 10, e ´grupo´, acima de 10, que cada cliente usou.
Decidi fazer uma Porcedure, porém ela está me retornando:

Cliente Qtde_Ind Vl_Ind Qntde_Gru Vl_Gru IDServ
1 1 500 0 0 1
1 2 1100 0 0 1
1 2 1100 1 860,00 1


O que eu preciso que apareça:
Cliente Qtde_Ind Vl_Ind Qntde_Gru Vl_Gru IDServ
1 2 1100 1 860,00 1

A minha linha é:
[color=red:952c93503e]
begin
quantgrupo = 0;
valorgrupo = 0;
quantindiv = 0;
valorindiv = 0;

for select oi.cc_qtdven, oi.cc_valor, c.cc_idclifor, c.cc_nome, s.cc_cod, s.cc_desc,
o.cc_idorc, oi.cc_idservico
from orc o
join orc_itens oi on o.cc_idorc=oi.cc_idorc
join clifor c on c.cc_idclifor=o.cc_idclifor
join servicos s on s.cc_idservicos=oi.cc_idservico
LEFT JOIN CAMBIO cam ON oi.CC_DATA = cam.CC_DIA AND oi.CC_MOEDA=cam.CC_MOEDA
where (oi.cc_data between :datai and :dataf)
and (c.cc_idclifor between :idclii and :idclif)
and (c.cc_nome between :nomeclii and :nomeclif)
order by o.cc_idclifor, oi.cc_idservico
into :nquant, :nvalor, :idcliente, :nomecliente, :codservico, :descservico, :nIdOrc, :nidservico
do
begin
if (:nquant>10) then --Grupo
begin
quantgrupo = :quantgrupo+1;
valorgrupo = :valorgrupo+nvalor;
end
else
begin
quantindiv = :quantindiv+1;
valorindiv = :valorindiv+nvalor;
end
suspend;
end

end[/color:952c93503e]

Grata desde já.
Gabriela.


Gabriela Miglioli

Gabriela Miglioli

Responder

Que tal ter acesso a um e-book gratuito que vai te ajudar muito nesse momento decisivo?

Ver ebook

Recomendado pra quem ainda não iniciou o estudos.

Eu quero
Ver ebook

Recomendado para quem está passando por dificuldades nessa etapa inicial

Eu quero

Utilizamos cookies para fornecer uma melhor experiência para nossos usuários, consulte nossa política de privacidade.

Aceitar