Ver Mensaje Individual
  #6 (permalink)  
Antiguo 25/03/2013, 09:36
Avatar de Libras
Libras
Colaborador
 
Fecha de Ingreso: agosto-2006
Ubicación: En la hermosa perla de occidente
Mensajes: 7.412
Antigüedad: 17 años, 8 meses
Puntos: 774
Respuesta: error creacion tablas horario y mesas

y para lo que necesitas sin uso de cursores:

Código SQL:
Ver original
  1. CREATE TABLE #horarios(
  2. id INT,
  3. hora_inicio INT,
  4. hora_fin INT
  5. )
  6.  
  7. CREATE TABLE #mesa(
  8. id INT,
  9. nombre VARCHAR(10)
  10. )
  11.  
  12. CREATE TABLE #reservaciones(
  13. id INT,
  14. id_horario INT,
  15. id_mesa INT,
  16. fecha VARCHAR(20)
  17. )
  18.  
  19.  
  20. INSERT INTO #horarios VALUES (1,1,2)
  21. INSERT INTO #horarios VALUES (2,2,3)
  22. INSERT INTO #horarios VALUES (3,3,4)
  23. INSERT INTO #horarios VALUES (4,4,5)
  24.  
  25.  
  26. INSERT INTO #mesa VALUES (1,'mesa1')
  27. INSERT INTO #mesa VALUES (2,'mesa2')
  28. INSERT INTO #mesa VALUES (3,'mesa3')
  29.  
  30. INSERT INTO #reservaciones VALUES (1,1,1,CONVERT(VARCHAR(20),GETDATE(),101))
  31. INSERT INTO #reservaciones VALUES (2,2,1,CONVERT(VARCHAR(20),GETDATE(),101))
  32. INSERT INTO #reservaciones VALUES (5,3,1,CONVERT(VARCHAR(20),GETDATE(),101))
  33. INSERT INTO #reservaciones VALUES (6,1,2,CONVERT(VARCHAR(20),GETDATE(),101))
  34. INSERT INTO #reservaciones VALUES (7,3,2,CONVERT(VARCHAR(20),GETDATE(),101))
  35. INSERT INTO #reservaciones VALUES (8,4,1,CONVERT(VARCHAR(20),GETDATE(),101))
  36. INSERT INTO #reservaciones VALUES (9,1,3,CONVERT(VARCHAR(20),GETDATE(),101))
  37.  
  38. INSERT INTO #reservaciones VALUES (3,1,1,CONVERT(VARCHAR(20),dateadd(dd,1,GETDATE()),101))
  39. INSERT INTO #reservaciones VALUES (4,2,2,CONVERT(VARCHAR(20),dateadd(dd,1,GETDATE()),101))
  40.  
  41.  
  42.  
  43. --Horas ocupadas
  44. SELECT m.nombre,h.hora_inicio,h.hora_fin,r.fecha FROM #reservaciones AS r,#horarios AS h, #mesa AS m
  45. WHERE r.id_horario=h.id AND m.id=r.id_mesa AND fecha=CONVERT(VARCHAR(20),GETDATE(),101)
  46. AND id_mesa=1 AND h.id IN (SELECT id FROM #horarios WHERE (hora_inicio BETWEEN 1 AND 3) AND (hora_fin
  47.  BETWEEN 1 AND 3) )
  48. ORDER BY m.nombre
  49. --Horas Libres
  50. SELECT DISTINCT hora_inicio,hora_fin,nombre,fecha FROM #reservaciones AS r,#horarios AS h, #mesa AS m
  51. WHERE fecha=CONVERT(VARCHAR(20),GETDATE(),101) AND CONVERT(VARCHAR(20),h.id) + '|' + CONVERT(VARCHAR(20),m.id) NOT IN (
  52. SELECT CONVERT(VARCHAR(20),id_horario) + '|' + CONVERT(VARCHAR(20),id_mesa) FROM #horarios,#reservaciones WHERE #horarios.id=#reservaciones.id_horario AND #reservaciones.fecha=CONVERT(VARCHAR(20),GETDATE(),101)
  53. )
  54. ORDER BY nombre
__________________
What does an execution plan say to t-sql query? Go f**k yourself, if you are not happy with me