me gusta ver mi codigo implementado jejeje :)
creo que no has entendido nada de mi codigo :(
Este codigo lo que hace es sacarte las mesas libres por "DIA" solo por cada dia, por eso te he recomendado que hagas una funcion con toooodo este codigo, si buscas resultados de dias diferentes al que pusiste en la tabla de #horarios_ocupados no los vas a encontrar porque? porque esa tabla maneja los datos por "DIA"
Código SQL:
Ver original--Horas Libres
DROP TABLE #temp
DROP TABLE #horarios_ocupados
SELECT HORA_INICIO,RESE_HORAS,MESA_COD,RESE_FECHA,IDENTITY(INT,1,1) AS rn INTO #temp
FROM HORARIOS,RESERVACIONES
WHERE HORARIOS.COD_HORA=RESERVACIONES.HORA_COD
SELECT * FROM #temp
CREATE TABLE #horarios_ocupados
(
id INT,
id_mesa INT,
r_fecha DATE
)
DECLARE @x INT
DECLARE @id_mesa INT
DECLARE @fecha VARCHAR(20)
SET @x=1
SET @id_mesa=0
SET @fecha='04/05/2013'
while @x<=(SELECT COUNT(*) FROM #temp)
BEGIN
SELECT @id_mesa=MESA_COD FROM #temp WHERE rn=@x
INSERT INTO #horarios_ocupados
SELECT COD_HORA,@id_mesa,@fecha FROM HORARIOS h,#temp t
WHERE h.HORA_INICIO BETWEEN (SELECT HORA_INICIO FROM #temp WHERE rn=@x)
AND (SELECT RESE_HORAS FROM #temp WHERE rn=@x)AND RESE_FECHA='04/05/2013'
SET @x=@x+1
END
-------------
con la explicacion pasada creo que comprenderas que aqui no puedes buscar resultados diferentes del dia 04/05/2013
-----------------------------
Código SQL:
Ver originalSELECT DISTINCT HORA_INICIO,MESA_DESC,RESE_FECHA FROM RESERVACIONES AS r,HORARIOS AS h, MESA AS m,#horarios_ocupados
WHERE RESE_FECHA='04/06/2013'--convert(varchar(20),GETDATE(),101) AND RESE_NPER NOT BETWEEN 0 AND 4-1
AND CONVERT(VARCHAR(20),H.COD_HORA) + '|' + CONVERT(VARCHAR(20),M.COD_MESA) NOT IN (
SELECT CONVERT(VARCHAR(20),id) + '|' + CONVERT(VARCHAR(20),id_mesa)
FROM #horarios_ocupados)
ORDER BY MESA_DESC
Ahora el codigo que te pase puedes implementarlo en tu aplicacion pero como una funcion no como TSQL porque no te funcionaria en una aplicacion web.....ya tienes el codigo suficiente para hacer tu proceso es solo que juegues un poco con el y entiendas realmente que hace...
saludos!