Ver Mensaje Individual
  #3  
Antiguo 17-04-2007
DaniMan DaniMan is offline
Registrado
 
Registrado: abr 2007
Posts: 3
Reputación: 0
DaniMan Va por buen camino
Ok, muchas gracias, pero la verdad que lo que tengo que hacer es mucho mas complicado de lo que me parecia.
El contenido original del store es el que tengo marcado en rojo y en negrita, lo que tengo que hacer es cambiar el order by de acuerdo del ID_COMERCIO.
Lo marcado en azul e italica es lo nuevo. La verdad que no se me ocurre como hacerlo de forma dinamica o concatenando el order by en un string y luego ejecutarlo con EXEC.

Si alguien me puede dar una mano se lo agradecere mucho ....

Tengo el sgte store procedure ....

create procedure desa01.prueba0 (in ID_USUARIO char(20),
IN ID_COMERCIO integer,
IN ID_ENTIDAD decimal(10),
in ID_SUCURSAL decimal(10))
dynamic result sets 1
language sql
begin

declare c1 cursor with return for
with cuits_habilitados(cuit) as(select cuit from table(desa01.TKNS002(id_usuario)) as cuits),
paises_habilitados(pais) as(select pais from table(desa01.TKNS003(id_usuario)) as paises)
select d.sucursal_comercio,
d.digito_verificador,
d.denominacion,
d.cuit,
d.ramo_comercio,
d.descripcion_ramo,
d.unificadora,
d.sucursal_entidad,
d.baja,
d.nombre_entidad,
d.nombre_sucursal
from desa01.TKT039 c,table(desa01.TKN0003(c.sucursal_comercio)) as d
where c.SUCURSAL_COMERCIO>=ID_COMERCIO and
d.unificadora>=ID_ENTIDAD and
d.sucursal_entidad>=ID_SUCURSAL and
( (desa01.TKNS001(id_usuario)='I' and c.pais in (select pais from paises_habilitados)) or
(desa01.TKNS001(id_usuario)='C' and c.cuit in (select cuit from cuits_habilitados)) or
(desa01.TKNS001(id_usuario)='B' and (select u.cuit
from desa01.tkv070 u where u.unificadora=d.unificadora ) in (select cuit from cuits_habilitados))
)
order by d.unificadora, sucursal_entidad, d.sucursal_comercio
fetch first 201 rows only;--
open c1;--

if ID_COMERCIO = 0 then
// ordena el query por
// d.unificadora,d.sucursal_entidad,d.sucursal_comercio
else
// ordena el query por
// d.sucursal_comercio, d.unificadora, d.sucursal_entidad
end if;--


end;
Responder Con Cita