Ver Mensaje Individual
  #4 (permalink)  
Antiguo 25/05/2010, 20:37
Avatar de SPAWN3000
SPAWN3000
 
Fecha de Ingreso: marzo-2008
Ubicación: Bogota
Mensajes: 858
Antigüedad: 16 años, 2 meses
Puntos: 15
De acuerdo Respuesta: ayudenme a solucionar este problema

- Segun como lo veo, tu consulta debe listas la lista de elementos con ID = ?, entre las fechas X y Y.

- Segun lo que dice MySQL se debe a la cantidad de anidaciones.(Demasiadas anidaciones-supera lo soportado por MySQl).

La idea de un procedimiento almacenado no creo que sea esta, desde el punto de analisis deberia ser un poco mas organizado...ya que cuando haya que depurar un error de datos logicos, o calculados, sera un verdadero dolor de cabeza(No se cuenta con paso a paso a menos que utilizemos embarcaderoDB u otros.).

RECOMENDACION:
Te ayudaria a dar un poco de organizacion, y muy probablemente solucione el problema las siguientes recomendaciones:

1. Crear funciones y vistas.
2. Crear SP's que se invoquen desde el principal.
3. Crear mensajes y validacion de errores entre la invocaciones de cada SP Auxiliar.
4. Establecer busquedas a nivel de indices.
5. utilizar tablas temporales.
6. Utiliza estructuras.
7. RECOMENDACION: Evita en lo posible utilizar cursores.

DELIMITER $$
CREATE PROCEDURE XXX(...)
BEGIN
...
SELECT CASE ... WHEN ... THEN
WHEN ... THEN '...' ELSE '...' END;

Call sp_Auxiliar1(...);
Call sp_Auxiliar2(...);
Call sp_Auxiliar3(...);

END
DELIMITER $$


Un saludo,