Fórum Varios registros em funcao #28131
22/03/2005
0
TB_AAA
COD --- METRICA --- VL
1 80 1000
1 80 500
2 80 5000
1 78 2000
2 78 3000
2 78 2500
Preciso criar uma função que me retorne, para cada metrica e codigo, a soma de seus valores e depois faca a diferenca entre os valores da metrica 80 com a 78, que tenham o mesmo codigo.
exemplo:
COD 1: VL (1000+500)/2000
COD 2: VL (5000)/(5500)
Ou seja, preciso de uma função que leia todos os registros da tabela, faca a soma agrupando por codigo e metrica, e depois faca a diferençao entre as duas metricas.
Alguem poderia me ajudar?!?
Fvilela
Curtir tópico
+ 0Posts
22/03/2005
Motta
não entendi ...
Gostei + 0
22/03/2005
Fvilela
...
suponha que tenho uma tabela com os seguintes registros como mostrado abaixo:
COD --- METRICA --- VL
1 80 1000
1 80 500
2 80 5000
1 78 2000
2 78 3000
2 78 2500
Se fizermos uma query que faca a soma e o agrupamento desses dados, teremos o seguinte:
select cod, metrica, sum(vl) from tb_aaa
group by cod,metrica
COD METRICA VL
1 80 1500
2 80 5000
1 78 2000
2 78 5500
Apos eu ter isso, tenho que pegar os registros que tenham o mesmo codigo e dividir o valor daquele codigo com a metrica 80 pelo valor da metrica 78.
Pegar o registro 1 - 80 - 1500 e dividir pelo registro 1 - 78 - 2000
gerando assim o resultado 1500/2000
pegar o registro 2 - 80 - 5000 e dividir pelo registro 2 - 78 - 5500
gerando assim o resultado 5000/5500
entendeu ?? eu preciso do retorno desse valor, da divisao das metricas 80 por 78, que possuam o mesmo codigo.
Gostei + 0
22/03/2005
Motta
function (pcod in number) return number is vl80 number; vl78 number begin select vl into vl80 from tabela where cod = pcod and metrica = 80; select vl into vl80 from tabela where cod = pcod and metrica = 78; return (vl78/vl80); end;
Gostei + 0
22/03/2005
Fvilela
Gostei + 0
22/03/2005
Motta
a function e recursiva ..
select codigo,razao(codigo)
from produto
where ....
onde razao seria a funcion
mas 80 e 78 sao fixos ?
Gostei + 0
23/03/2005
Fvilela
Sim, sao. Realmente funcionou como esperava.
Obrigadao pela ajuda Motta, no que precisar tamos ai!!!
Gostei + 0
Clique aqui para fazer login e interagir na Comunidade :)