Club Delphi  
    FTP   CCD     Buscar   Trucos   Trabajo   Foros

Retroceder   Foros Club Delphi > Bases de datos > Firebird e Interbase
Registrarse FAQ Miembros Calendario Guía de estilo Buscar Temas de Hoy Marcar Foros Como Leídos

Respuesta
 
Herramientas Buscar en Tema Desplegado
  #1  
Antiguo 13-02-2007
aladelta aladelta is offline
Miembro
 
Registrado: jul 2003
Posts: 70
Poder: 21
aladelta Va por buen camino
Hola amigos:

y gracias rastafarey, porque el amigo delphius ha dado en el clavo con eso de suma recursiva, cosa que yo he sido incapaz de decir...lo siento...

Pero es eso exactamente lo que necesito hacer, y lo estoy intentando con varios anidados, pero nada...

Es cierto que la jerarquia puede crecer a voluntad del usuario, y pienso que lo mejor va a ser hacerlo por codigo desde delphi y no como procedimiento almacenado...

Ya me desespero de hacer pruebas con esto, voy a por el codigo...a ver que tal se me da...

Gracias de nuevo
Responder Con Cita
  #2  
Antiguo 14-02-2007
Avatar de fjcg02
[fjcg02] fjcg02 is offline
Miembro Premium
 
Registrado: dic 2003
Ubicación: Zamudio
Posts: 1.411
Poder: 22
fjcg02 Va camino a la fama
Siempre y cuando sepas el nº de 'grupos' de registros que tengas que calcular, podrías hacer una select con UNION. Para realizarla necesitas que todas las querys que unas devuelvan los mismos campos, que creo que es el caso.
Ejemplo, los grupos son de 1, 2 y tres caracteres:
A
A1 -> A11, A12, A13
A11 -> A111, A112, A113

Código SQL [-]
SELECT substr(codigo,1,1) AS codigo, sum(cant1), sum(cant2) from X 
group by codigo
UNION
SELECT substr(codigo,1,2) AS codigo, sum(cant1), sum(cant2) from X 
group by codigo
UNION
SELECT substr(codigo,1,3) AS codigo, sum(cant1), sum(cant2) from X 
group by codigo

Si no sabes cuantos 'grupos' tienes, siempre puedes hacer unas querys previamente para calcularlos, es decir

Código SQL [-]
select distinct length(codigo) as grupo from x order by grupo

te devolverá el nº de selects que tendrás que preparar.

Espero no haber sido muy espeso, es por la hora....

Suerte y un saludo
PD: No se que motor de BBDD usas, pero no creo que tengas problemas para adaptarlo
__________________
Cuando los grillos cantan, es que es de noche - viejo proverbio chino -
Responder Con Cita
  #3  
Antiguo 14-02-2007
aladelta aladelta is offline
Miembro
 
Registrado: jul 2003
Posts: 70
Poder: 21
aladelta Va por buen camino
Hola:

Es una buena idea, fjcg02...

Estoy trabajando sobre firebird 2.0 y cuando pruebo solamente un select sin union me da error en la funcion substr...pero es raro ya que aparece en el langref.pdf y no me deja ejecutar el procedimiento...

¿A que se puede deber este error?

Gracias amigo...
Responder Con Cita
Respuesta


Herramientas Buscar en Tema
Buscar en Tema:

Búsqueda Avanzada
Desplegado

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
Problema con procedimiento almacenado XBart Firebird e Interbase 3 27-10-2005 09:08:17
Problema con Procedimiento Almacenado Offset 88 AGAG4 Firebird e Interbase 8 19-11-2004 23:02:55
problema con procedimiento almacenado Choclito Firebird e Interbase 2 04-11-2004 20:58:46
Problema con procedimiento almacenado juziel Firebird e Interbase 4 20-09-2004 18:31:41
Problema con un procedimiento almacenado Markoz Firebird e Interbase 1 08-07-2003 11:47:20


La franja horaria es GMT +2. Ahora son las 16:46:24.


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