Fórum Order by variável em Stored Procedure #58279
06/05/2007
0
order by <variável>
Como sei que é possível ordenar pelo numero da coluna, como abaixo:
order by 2
Tentei criar uma variavel inteira onde seu valor é o numero da coluna que o usuario deseja ordenar, order by ficou assim:
order by :posicao
Beleza, não ocorre erro, mas.. não funfa, alguem tem a solução para isto?
Abaixo vai a procedure real:
begin
posicao = case ordem
when ´numnf´ then 2
when ´emissao_nf´ then 3
when ´cliente´ then 4
end;
for
select
rv.codigo_cliente,
rv.numnf,
rv.emissao_nf,
cl.identificacao,
rv.status,
sum(total_icms) as total_icms,
sum(total_nf) as total_nf,
sum(ipi) as ipi,
sum(comissao) as comissao,
sum(total_iss) as total_iss
from
resumovendas rv left outer join clientes cl on
rv.codigo_cliente = cl.codigo_cliente
where
(rv.emissao_nf between :data_inicial and :data_final)
and
(rv.status=coalesce(:filtro_status,rv.status))
group by
rv.codigo_cliente,
rv.numnf,
rv.emissao_nf,
cl.identificacao,
rv.status
order by :posicao
/* => Também não funciona
order by (case ordem
when ´numnf´ then 2
when ´emissao_nf´ then 3
when ´cliente´ then 4
end)
*/
into
:codigo_cliente,
:num_nf,
:emissao_nf,
:razao_cliente,
:status,
:total_icms,
:total_nf,
:total_ipi,
:total_comissao,
:total_iss
do
begin
suspend;
end
begin
total_icms = posicao;
suspend;
end
end
Scd
Curtir tópico
+ 0Posts
07/05/2007
Sremulador
Gostei + 0
07/05/2007
Gandalf.nho
Gostei + 0
31/07/2007
Murilo-jau
Gostei + 0
31/07/2007
Emerson Nascimento
por exemplo:
select *
from sua_stored_procedure( data_inicial, data_final, status )
order by campo_desejado
Gostei + 0
Clique aqui para fazer login e interagir na Comunidade :)