Solución para el error 1329 de MySQL: No data – zero rows fetched, selected, or processed.
Programando una Función en Mysql para verificar los inventarios segun los movimientos que ha tenido un articulo, habia una sentencia que me marcaba este error al hacer el SELECT a la función:
No data - zero rows fetched, selected, or processed
Mi Función va algo asi:
DELIMITER $$ DROP FUNCTION IF EXISTS `elarco`.`GetExistenciaMovimientos` $$ CREATE FUNCTION `GetExistenciaMovimientos`(idp VARCHAR(45),ida INT,fechai VARCHAR(20),fechaf VARCHAR(20)) RETURNS int(11) BEGIN DECLARE ExistenciaAnterior INT; SELECT valornuevo FROM bitacora WHERE mensaje=idp AND fecha<=fechai AND tipo=CONCAT('UPDATE',ida) ORDER BY idbitacora DESC LIMIT 1 INTO ExistenciaAnterior; /** **Varios Select contando los movimientos en entradas,salidas,traspasos,ventas,etc... */ RETURN (ExistenciaAnterior+Entradas+TraspasosEntradas+AjustesInventarioEntrada)+(Salidas+TraspasosSalida+Creditos+Contados+OrdenCompra+AjustesInventarioSalida); END $$ DELIMITER ;
La cosa es que por alguna razón (encontré la solución y por tiempo ya no seguí investigando el porque, si alguien lo sabe agradecería lo comentara
) el error me salia al hacer la consulta de la Existencia anterior, y lo solucione con la siguiente sentencia una linea antes de hacer la consulta:
DECLARE CONTINUE HANDLER FOR NOT FOUND SET ExistenciaAnterior = 0;
Qudando finalmente algo mas o menos asi:
DELIMITER $$ DROP FUNCTION IF EXISTS `elarco`.`GetExistenciaMovimientos` $$ CREATE FUNCTION `GetExistenciaMovimientos`(idp VARCHAR(45),ida INT,fechai VARCHAR(20),fechaf VARCHAR(20)) RETURNS int(11) BEGIN DECLARE ExistenciaAnterior INT; DECLARE CONTINUE HANDLER FOR NOT FOUND SET ExistenciaAnterior = 0; SELECT valornuevo FROM bitacora WHERE mensaje=idp AND fecha<=fechai AND tipo=CONCAT('UPDATE',ida) ORDER BY idbitacora DESC LIMIT 1 INTO ExistenciaAnterior; /** **Varios Select contando los movimientos en entradas,salidas,traspasos,ventas,etc... */ RETURN (ExistenciaAnterior+Entradas+TraspasosEntradas+AjustesInventarioEntrada)+(Salidas+TraspasosSalida+Creditos+Contados+OrdenCompra+AjustesInventarioSalida); END $$ DELIMITER ;
Espero este breve tip haya sido de utilidad para quien tenga un problema similar; almenos en mi caso me funciono asi que si no te funciono puede que la causa sea otra diferente a la mía, intenta publicar tu caso en foros especializados donde hay mucha gente como yo dispuesta a ayudarte; te recomiendo www.cristalab.com y www.forosdelweb.com .
No related posts.
Related posts brought to you by Yet Another Related Posts Plugin.

















1 Comentario se siente solito :D
En algunas paginas mencionan que es porque la funcion no regresa nada y marca ese warning .
Realize esto dentro de mi función.
IF totalt > 0 THEN
RETURN totalt;
ELSE
RETURN 0;
END IF;
mas sin embargo me siguio marcado el mismo warning .
Hasta que puse
como sugieres en tu post
DECLARE CONTINUE HANDLER FOR NOT FOUND SET totalt = 0;
dejo de marcar ese warning.
De ante mano gracias por tu aportación.
Gracias.
Slds.