Foros del Web » Programación para mayores de 30 ;) » Bases de Datos General » SQL Server »

Error al crear base de datos reservacion de mesa por hora

Estas en el tema de Error al crear base de datos reservacion de mesa por hora en el foro de SQL Server en Foros del Web. hola neceseito una ayuda en las creacion de tablas creo q esta mal lo q necesito es una consulta q m muestre las horas q ...
  #1 (permalink)  
Antiguo 16/03/2013, 11:19
 
Fecha de Ingreso: abril-2012
Ubicación: surquillo
Mensajes: 44
Antigüedad: 12 años
Puntos: 0
Error al crear base de datos reservacion de mesa por hora

hola neceseito una ayuda en las creacion de tablas creo q esta mal

lo q necesito es una consulta q m muestre las horas q stan las mesas disponibles

osea tengo una mesa q fue reservada a las 08:00 hasta las 10:00
ahora en una consulta qiero q me muestre las horas disponibles de todas las mesas coo haria eso ?
estab pensando crear una tabla horario y fecha pero no se espero su respuesta :D

LO ESTOY PROGRAMANDO EN ASP.NET

CREATE TABLE CLIENTES(
COD_CLI CHAR(6) PRIMARY KEY ,
CLI_NOM VARCHAR(30) ,
CLI_APEP VARCHAR(30) ,
CLI_APEM VARCHAR(30) ,
CLI_TELF VARCHAR(30) ,
CLI_EMAIL VARCHAR(30) ,
CLI_DNI VARCHAR(9) ,
CLI_FNAC DATE ,
CLI_SEXO VARCHAR(1),
CLI_DIRE VARCHAR(30) ,
DIST_COD CHAR(6) ,
CLI_ESTADO CHAR(1),
USU_COD CHAR(6)NULL,
AUDT_FECACT DATE NULL ,
AUDT_USER CHAR(6) NULL,
CONSTRAINT FK_CLI_DIST FOREIGN KEY (DIST_COD) REFERENCES DISTRITO(COD_DIST),
CONSTRAINT FK_CLI_USU FOREIGN KEY (AUDT_USER) REFERENCES USUARIO(COD_USU),
CONSTRAINT FK_CLI_USU1 FOREIGN KEY (USU_COD) REFERENCES USUARIO(COD_USU)
)


CREATE TABLE MESA(
COD_MESA CHAR(6)PRIMARY KEY ,
MESA_DESC VARCHAR(30) ,
MESA_SILLAS INT ,
SEDE_COD CHAR(6),
MESA_FILA INT,
MESA_COLUMNA INT,
MESA_ESTADO CHAR(1) ,
MESA_TIPO CHAR(1),
MESA_PRECIO DECIMAL(7,2)
)

GO

CREATE TABLE RESERVACIONES(
COD_RESE CHAR(6) PRIMARY KEY ,
RESE_FECHA DATE ,
RESE_NPER INT ,
RESE_HORAE TIME ,
RESE_HORAS TIME ,
RESE_ESTADO CHAR(1),
CLI_COD CHAR(6)NULL,
MESA_COD CHAR(6)
CONSTRAINT FK_RESER_CLI FOREIGN KEY (CLI_COD) REFERENCES CLIENTES(COD_CLI),
CONSTRAINT FK_RESER_MESA FOREIGN KEY (MESA_COD) REFERENCES MESA(COD_MESA)
)


MUCHAS GRACIAS AUNQUE SEA POR TOMARSE LA MOLESTIA DE LEERLO
  #2 (permalink)  
Antiguo 17/03/2013, 05:45
 
Fecha de Ingreso: julio-2012
Ubicación: Israel
Mensajes: 360
Antigüedad: 11 años, 9 meses
Puntos: 40
Respuesta: Error al crear base de datos reservacion de mesa por hora

No hablo bien Castellano, y lamentablemente muchas palabras de tu mensaje no aparecen en mi diccionario..

Espero que tu puedas entender mi Castellano y mi TSQL:

Código SQL:
Ver original
  1. CREATE TABLE CLIENTES(
  2. COD_CLI CHAR(6) PRIMARY KEY ,
  3. CLI_NOM VARCHAR(30) ,
  4. CLI_APEP VARCHAR(30) ,
  5. CLI_APEM VARCHAR(30) ,
  6. CLI_TELF VARCHAR(30) ,
  7. CLI_EMAIL VARCHAR(30) ,
  8. CLI_DNI VARCHAR(9) ,
  9. CLI_FNAC DATE ,
  10. CLI_SEXO VARCHAR(1),
  11. CLI_DIRE VARCHAR(30) ,
  12. DIST_COD CHAR(6) ,
  13. CLI_ESTADO CHAR(1),
  14. USU_COD CHAR(6)NULL,
  15. AUDT_FECACT DATE NULL ,
  16. AUDT_USER CHAR(6) NULL
  17. --CONSTRAINT FK_CLI_DIST FOREIGN KEY (DIST_COD) REFERENCES DISTRITO(COD_DIST),
  18. --CONSTRAINT FK_CLI_USU FOREIGN KEY (AUDT_USER) REFERENCES USUARIO(COD_USU),
  19. --CONSTRAINT FK_CLI_USU1 FOREIGN KEY (USU_COD) REFERENCES USUARIO(COD_USU)
  20. )
  21.  
  22.  
  23. CREATE TABLE MESA(
  24. COD_MESA CHAR(6)PRIMARY KEY ,
  25. MESA_DESC VARCHAR(30) ,
  26. MESA_SILLAS INT ,
  27. SEDE_COD CHAR(6),
  28. MESA_FILA INT,
  29. MESA_COLUMNA INT,
  30. MESA_ESTADO CHAR(1) ,
  31. MESA_TIPO CHAR(1),
  32. MESA_PRECIO DECIMAL(7,2)
  33. )
  34.  
  35. GO
  36.  
  37. CREATE TABLE RESERVACIONES(
  38. COD_RESE CHAR(6) PRIMARY KEY ,
  39. RESE_FECHA DATE ,
  40. RESE_NPER INT ,
  41. RESE_HORAE TIME ,
  42. RESE_HORAS TIME ,
  43. RESE_ESTADO CHAR(1),
  44. CLI_COD CHAR(6)NULL,
  45. MESA_COD CHAR(6)
  46. CONSTRAINT FK_RESER_CLI FOREIGN KEY (CLI_COD) REFERENCES CLIENTES(COD_CLI),
  47. CONSTRAINT FK_RESER_MESA FOREIGN KEY (MESA_COD) REFERENCES MESA(COD_MESA)
  48. )
  49.  
  50. INSERT INTO CLIENTES(COD_CLI) SELECT 'MiClnt';
  51.  
  52. INSERT INTO  MESA(COD_MESA) SELECT 'MiMesa';
  53.  
  54. INSERT INTO RESERVACIONES(COD_RESE,CLI_COD,MESA_COD,RESE_FECHA,RESE_HORAE,RESE_HORAS) SELECT '1.1','MiClnt','MiMesa','20130101','19:00:00.000','20:00:00.000';
  55. INSERT INTO RESERVACIONES(COD_RESE,CLI_COD,MESA_COD,RESE_FECHA,RESE_HORAE,RESE_HORAS) SELECT '1.2','MiClnt','MiMesa','20130101','20:00:00.000','22:00:00.000';
  56. INSERT INTO RESERVACIONES(COD_RESE,CLI_COD,MESA_COD,RESE_FECHA,RESE_HORAE,RESE_HORAS) SELECT '2.1','MiClnt','MiMesa','20130102','19:00:00.000','20:00:00.000';
  57. INSERT INTO RESERVACIONES(COD_RESE,CLI_COD,MESA_COD,RESE_FECHA,RESE_HORAE,RESE_HORAS) SELECT '2.2','MiClnt','MiMesa','20130102','21:00:00.000','23:59:59.999';
  58. INSERT INTO RESERVACIONES(COD_RESE,CLI_COD,MESA_COD,RESE_FECHA,RESE_HORAE,RESE_HORAS) SELECT '3','MiClnt','MiMesa','20130103','00:00:00.000','03:00:00.000';
  59.  
  60. WITH T AS
  61. (SELECT ROW_NUMBER() OVER(Partition BY RESE_FECHA ORDER BY RESE_HORAE) N,
  62.         *
  63. FROM    RESERVACIONES)
  64. SELECT  IsNull(T1.RESE_FECHA,T2.RESE_FECHA) RESE_FECHA,
  65.         IsNull(T1.RESE_HORAS,'00:00:00.000') RESE_HORAS,
  66.         IsNull(T2.RESE_HORAE,'23:59:59.999') RESE_HORAE
  67. FROM    T T1
  68. FULL JOIN T T2
  69.         ON T1.RESE_FECHA=T2.RESE_FECHA
  70.         AND T1.N=T2.N-1
  71. WHERE   IsNull(T1.RESE_HORAS,'00:00:00.000')<>IsNull(T2.RESE_HORAE,'23:59:59.999');
__________________
El Castellano no es mi lengua materna: discúlpenme por los errores gramaticales.
Mi blog
  #3 (permalink)  
Antiguo 18/03/2013, 00:29
 
Fecha de Ingreso: abril-2012
Ubicación: surquillo
Mensajes: 44
Antigüedad: 12 años
Puntos: 0
Respuesta: Error al crear base de datos reservacion de mesa por hora

necesito crear una bd que me permita reservas mesas por hora bueno no se si este bien planteada lo que quiero es que tengo hasta ahora la tabla clientes mesa y reservaciones no se si debo agregarle la tabla horas lo que necesito es tengo que hacer una busqueda por fecha y hora y si esta ocupada esa mesa a esa hora que me salga las horas que esta disponible esta mesa espero su respuesta muchas gracias
Cita:
Editado: En FDW sólo se postea usando castellano (o español, si lo prefieres así).

Última edición por gnzsoloyo; 18/03/2013 a las 06:06
  #4 (permalink)  
Antiguo 18/03/2013, 05:29
 
Fecha de Ingreso: julio-2012
Ubicación: Israel
Mensajes: 360
Antigüedad: 11 años, 9 meses
Puntos: 40
Respuesta: Error al crear base de datos reservacion de mesa por hora

Fue un chiste, porque oraciones tal como "lo q necesito es una consulta q m muestre las horas q stan las mesas disponibles" no son en Castellano..

En cada caso: te entendí muy bien y en mi respuesta anterior adjunte un ejemplo detallado.
__________________
El Castellano no es mi lengua materna: discúlpenme por los errores gramaticales.
Mi blog
  #5 (permalink)  
Antiguo 18/03/2013, 11:47
 
Fecha de Ingreso: abril-2012
Ubicación: surquillo
Mensajes: 44
Antigüedad: 12 años
Puntos: 0
Respuesta: Error al crear base de datos reservacion de mesa por hora

SI ESTA BIEN LO QUE PASA QUE EL ESPAÑOL TIENE VARIAS MANERAS DE HABLAR PERO EN FIN TE AGRADESCO POR LA RESPUESTA LA CONSULTA QUE ME MANDASTE ESTA PRECISA MUCHAS GRACIAS :D UNA DUDA MAS DONDE AGREGO MAS CAMPOS A ESA CONSULTA PARA QUE ME LO MUESTREN EL CODIGO Y AGREGARDO LA FECHA INTENTE HACERLO ASI


WITH T AS
(SELECT Row_Number() Over(Partition BY RESE_FECHA ORDER BY RESE_HORAE) N,COD_RESE,
*
FROM RESERVACIONES R)
SELECT IsNull(T1.RESE_FECHA,T2.RESE_FECHA) RESE_FECHA,
IsNull(T1.RESE_HORAS,'00:00:00.000') RESE_HORAS,
IsNull(T2.RESE_HORAE,'23:59:59.999') RESE_HORAE
FROM T T1
Full JOIN T T2
ON T1.RESE_FECHA=T2.RESE_FECHA
AND T1.N=T2.N-1
WHERE IsNull(T1.RESE_HORAS,'00:00:00.000')<>IsNull(T2.RE SE_HORAE,'23:59:59.999') AND R.RESE_FECHA='10/02/2013';

Etiquetas: mesa, tabla
Atención: Estás leyendo un tema que no tiene actividad desde hace más de 6 MESES, te recomendamos abrir un Nuevo tema en lugar de responder al actual.
Respuesta




La zona horaria es GMT -6. Ahora son las 03:23.