Hola Foxeros
He creado mi combo multichek que me permite seleccionar una serie de características para luego pasarlo como parametro a una consulta SELECT por medio de una funcion, esta funcion consulta en otra tabla y se obtiene en número de registros que existe
Al momento de seleccionar o marcar los items del combo los códigos se almacenan en una propiedad llamada Value, estos códigos se encuentran almacenados en modo texto separados por comas ejemplo "01,04,07"
Luego son pasados como parámetros de una funcion que me cuenta los códigos por cada habitación
SELECT * FROM tabla WHERE sf_propiedades(HabitacionID, ?lcCodigos) > 0
Mi función almacenada sp_propiedades tiene este código
FUNCTION sp_propiedades(tnHabitacionID, tcLista);
BEGIN
DECLARE lnResult INTEGER DEFAULT 0;
SELECT COUNT(*) Cantidad
FROM habitaciones_dato
WHERE HabitacionID = tnHabitacionID AND LOCATE(LPAD(PropiedadID, 2, '0'), tcLista) > 0
INTO lnResult;
RETURN lnResult;
END
Pero el detalle que me doy cuenta es que no me filtra por todas las características en conjunto sino que va buscando las que hay y los añade a la lista, por ejemplo en la imagen inicial las 2 primeras habitaciones tienen AIRE ACOND. pero no INTERNET y la 3 habitacion solo tiene INTERNET y segun la logica no deberia salir ninguno de los 3 por que no cumplen las 2 características. Pero todo esto sucede por este código:
SELECT COUNT(*) Cantidad
FROM habitaciones_dato
WHERE HabitacionID = tnHabitacionID AND LOCATE(LPAD(PropiedadID, 2, '0'), tcLista) > 0
Lo que quería saber es si en mySQL se puede trabajar como en fox donde la sentencia lo guardo como cadena, luego le voy añadiendo mas parametros
SELECT COUNT(*) Cantidad
FROM habitaciones_dato
WHERE HabitacionID = tnHabitacionID AND
LPAD(PropiedadID, 2, '0') = '02' AND
LPAD(PropiedadID, 2, '0') = '03'
Pero como consigo hacer esto dentro de la función almacenada
Saludos
Ze
VFP Unlimited - Canal de Youtube