Ver Mensaje Individual
  #1 (permalink)  
Antiguo 12/06/2012, 06:29
edos_gn
 
Fecha de Ingreso: abril-2012
Ubicación: Colombia
Mensajes: 10
Antigüedad: 12 años
Puntos: 0
Problema con between en procedimiento almacenado

Buenos dias, le comento mi problema desarrolle un procedimiento almacenado para realizar la busqueda entre fechas en mi base de datos. de esta manera:

DELIMITER $$

DROP PROCEDURE IF EXISTS `simae`.`sp_listaReporteTrabajadores`$$

CREATE DEFINER=`root`@`localhost` PROCEDURE `sp_listaReporteTrabajadores`(IN fechaInicial DATE, IN fechaFinal DATE, IN dato INT)
BEGIN
SELECT NOMBRE_USUARIO,NOMBRE_PRODUCTO,REFERENCIA_PRODUCTO ,f.FECHA,SUM(CANTIDAD_VENTA) AS cantidad
FROM producto p, factura f, usuario u, factura_cliente fc
WHERE p.COD_PRODUCTO=f.COD_PRODUCTO AND u.COD_USUARIO=fc.COD_USUARIO AND fc.NUMERO_FACTURA=f.NUMERO_FACTURA
AND f.FECHA BETWEEN fechaInicial AND fechaFinal AND NOMBRE_USUARIO LIKE dato
GROUP BY f.COD_PRODUCTO
ORDER BY NOMBRE_USUARIO DESC LIMIT 10;
END$$

DELIMITER ;

El problema esta en que el between al parecer solo funciona si las variables de fecha inicial y final estan entre comillas...

realice una prueba de esta manera y si me devuelve el resultado.

SELECT NOMBRE_USUARIO,NOMBRE_PRODUCTO,REFERENCIA_PRODUCTO ,f.FECHA,SUM(CANTIDAD_VENTA) AS cantidad
FROM producto p, factura f, usuario u, factura_cliente fc
WHERE p.COD_PRODUCTO=f.COD_PRODUCTO AND u.COD_USUARIO=fc.COD_USUARIO AND fc.NUMERO_FACTURA=f.NUMERO_FACTURA
AND f.FECHA BETWEEN '2012-02-12' AND '2012-06-12' AND NOMBRE_USUARIO LIKE '%%'
GROUP BY f.COD_PRODUCTO
ORDER BY NOMBRE_USUARIO DESC LIMIT 10;

Lo que quiero es saber como hacer para que las variables de entrada las detecte como si fueran texto entre comillas asi: 'fechaInicial'

agradezco su ayuda es urgente....