Club Delphi  
    FTP   CCD     Buscar   Trucos   Trabajo   Foros

Retroceder   Foros Club Delphi > Principal > SQL
Registrarse FAQ Miembros Calendario Guía de estilo Temas de Hoy

 
 
Herramientas Buscar en Tema Desplegado
  #1  
Antiguo 17-01-2007
IVAND IVAND is offline
Miembro
 
Registrado: may 2003
Ubicación: ECUADOR
Posts: 529
Poder: 22
IVAND Va por buen camino
Sp. con errores como solucionarlo y mejora los indices

Hola a todos

Utilizo firebird 1.5.3 , estoy tratando de crear un sp que le datos de una tabla y luego esos datos lo envio como parametros para sacar un informe que me estan pidiendo que es sacar las ventas por ano y mes por ciertos rangos los cuales pueden parametrizados (por eso lo puse en un a tabla y los envio para obtener el query)

Anexo el codigo del Sp.
Código SQL [-]
CREATE PROCEDURE FACTURA_CONTADOR (
    key_empresa integer,
    ano integer)
returns (
    dato char(10),
    mes integer,
    anos integer,
    no_vence numeric(15,2),
    monto_factura numeric(15,2))
as
declare variable valor1 integer;
declare variable valor2 integer;
Begin
FOR select descripcion,valor1,valor2 from tabla
 where key_padre =
    (select key_hijo from tabla where nomtabla ='REPOR'
                  and key_padre is null
                  and key_empresa=:key_empresa)   Into :dato,:valor1,:valor2 DO
Begin
 select count(c.key_cab_fac) Nveces,
 extract(month from c.fec_factura) mes,
 sum(f.total) total
 from cab_fac c , form_pago f
 where c.key_cab_fac=f.key_cab_fac
 and extract(year from c.fec_factura) = :ano
 and c.estado_fac='T'
 and f.cod_pago=533
 and f.total between :valor1 and :valor2
 group by  extract(month from c.fec_factura) into :no_vence,:mes,:monto_factura ;
 Suspend;

End
END

Me sale un error de single row en select y no me muestra nada , si quito el select despues del do me muestra los rangos de pedidos pero no los datos que deberia alguien me puede orientar o dar otra mejor idea de sacar este infiorme , crear algun indice para que valla mas rapido o algo ,
Nota : Si ejecuto el select solo si funciona pero con solo un rango
Código SQL [-]
 select count(c.key_cab_fac) Nveces,
 extract(month from c.fec_factura) mes,
 sum(f.total) total
 from cab_fac c , form_pago f
 where c.key_cab_fac=f.key_cab_fac
 and extract(year from c.fec_factura) = :ano
 and c.estado_fac='T'
 and f.cod_pago=533
 and f.total between :valor1 and :valor2
 group by  extract(month from c.fec_factura)
__________________
IVAND
Responder Con Cita
 



Normas de Publicación
no Puedes crear nuevos temas
no Puedes responder a temas
no Puedes adjuntar archivos
no Puedes editar tus mensajes

El código vB está habilitado
Las caritas están habilitado
Código [IMG] está habilitado
Código HTML está deshabilitado
Saltar a Foro

Temas Similares
Tema Autor Foro Respuestas Último mensaje
A ver si ah alguien le sirve y lo mejora... DarkDrakon Varios 5 27-08-2005 06:43:51
Uso de campos lookup como indices. purhé Tablas planas 2 20-06-2005 22:57:34
Mejora la cultura sexual. marcoszorrilla Humor 0 15-04-2005 21:41:34
Mejora una consulta Indexando campos fisicamente?? nefy SQL 7 16-07-2004 16:32:06
Como regenerar indices? nefy Tablas planas 1 11-02-2004 20:28:35


La franja horaria es GMT +2. Ahora son las 12:17:31.


Powered by vBulletin® Version 3.6.8
Copyright ©2000 - 2024, Jelsoft Enterprises Ltd.
Traducción al castellano por el equipo de moderadores del Club Delphi
Copyright 1996-2007 Club Delphi