elhacker.net cabecera Bienvenido(a), Visitante. Por favor Ingresar o Registrarse
¿Perdiste tu email de activación?.

 

 


Tema destacado: Usando Git para manipular el directorio de trabajo, el índice y commits (segunda parte)


+  Foro de elhacker.net
|-+  Programación
| |-+  Desarrollo Web
| | |-+  Bases de Datos (Moderador: Carloswaldo)
| | | |-+  Procedimiento almacenado que recibe como parámetros fecha de entrada y salida
0 Usuarios y 1 Visitante están viendo este tema.
Páginas: [1] Ir Abajo Respuesta Imprimir
Autor Tema: Procedimiento almacenado que recibe como parámetros fecha de entrada y salida  (Leído 3,930 veces)
S4ms3pi0l__

Desconectado Desconectado

Mensajes: 21


Ver Perfil
Procedimiento almacenado que recibe como parámetros fecha de entrada y salida
« en: 24 Marzo 2019, 23:33 pm »

Tengo la siguiente consulta usando la misma base de datos de mi post anterior:

https://foro.elhacker.net/bases_de_datos/ayuda_con_una_consulta_usando_procedimientos_almacenados-t493882.0.html

Realizar un procedimiento almacenado que reciba como parámetro Fecha de Entrada, Fecha de Salida. Consultar la disponibilidad de todas las habitaciones en el rango de fechas solicitado.
Presentar: IdHabitación - Tipo de Habitación, Estado.
Ejemplo:
Entrada
Fecha de Entrada: 2019-03-14
Fecha de Salida:  2019-03-20
Ejecución
IdHabitación Tipo de Habitación         Estado
   1            Deluxe                 Disponible
   2            Deluxe                 Disponible
   3            Turística              Reservado
   4            Presidencial           Disponible
   ..           .....                  .....
   ..           .....                  .....
Nota: Con que exista un día ocupado en la habitación en el rango solicitado, el estado será: Reservado.

Es bastante parecido a la consulta de mi post anterior, así que, decidí modificarla y en teoría funciona, pero por ejemplo, tengo 5 datos almacenados y este muestra 30 datos en la ejecución.

Adjunto mi código:

Código
  1. CREATE PROCEDURE SP_Disponibilidad2
  2. @fecha_entrada DATE,
  3. @fecha_salida  DATE
  4. AS BEGIN
  5. DECLARE @ocupado INTEGER
  6. DECLARE @tmp_table TABLE (
  7. HabitacionID INT,
  8. TipoHab VARCHAR(80),
  9. Estado VARCHAR(10)
  10. )
  11.  
  12. WHILE ( @fecha_entrada <= @fecha_salida )
  13. BEGIN
  14. SET @ocupado = (
  15. SELECT COUNT(*)
  16. FROM habitacion_reserva hr
  17. --INNER JOIN habitacion h ON hr.id_habitacion = h.no_habitacion
  18. --INNER JOIN tipo_habitacion th ON th.cod_tipo = h.cod_tipo
  19. WHERE @fecha_entrada BETWEEN fecha_entrada AND fecha_salida
  20. )
  21. IF ( @ocupado > 0 )
  22. INSERT INTO @tmp_table
  23. SELECT
  24. h.no_habitacion,
  25. th.nom_tipo,
  26. 'Reservado'
  27. FROM habitacion_reserva hr
  28. INNER JOIN habitacion h ON hr.id_habitacion = h.no_habitacion
  29. INNER JOIN tipo_habitacion th ON th.cod_tipo = h.cod_tipo
  30. --WHERE @fecha_entrada BETWEEN fecha_entrada AND fecha_salida
  31. ELSE
  32. INSERT INTO @tmp_table
  33. SELECT
  34. hr.id_habitacion,
  35. th.nom_tipo,
  36. 'Disponible'
  37. FROM habitacion_reserva hr
  38. INNER JOIN habitacion h ON hr.id_habitacion = h.no_habitacion
  39. INNER JOIN tipo_habitacion th ON th.cod_tipo = h.cod_tipo
  40. --WHERE @fecha_entrada BETWEEN fecha_entrada AND fecha_salida
  41.  
  42. SET @fecha_entrada = DATEADD( DAY, 1, @fecha_entrada )
  43. END
  44.  
  45. SELECT * FROM @tmp_table
  46. END
  47.  
  48.    /********************************/
  49.  
  50.  
  51. EXECUTE SP_Disponibilidad2 '2019-07-20', '2019-07-25'
  52.  

+--------------+------------+
| IdHabitacion| Estado      |
+--------------+------------+
| 1                | Reservado |
| 2                | Reservado |
| 3                | Reservado |
| 4               | Disponible |
| 5                | Disponible |
| 1               | Disponible |
| ...30           | Disponible |
+------------+--------------+


« Última modificación: 24 Marzo 2019, 23:36 pm por S4ms3pi0l__ » En línea

Páginas: [1] Ir Arriba Respuesta Imprimir 

Ir a:  

Mensajes similares
Asunto Iniciado por Respuestas Vistas Último mensaje
llamar Procedimiento Almacenado
Programación Visual Basic
juanjoxx 0 1,377 Último mensaje 9 Septiembre 2008, 05:23 am
por juanjoxx
tabla temporal en procedimiento almacenado
Bases de Datos
OssoH 0 3,468 Último mensaje 21 Noviembre 2012, 21:58 pm
por OssoH
Llamar un procedimiento almacenado PL desde PHP.
Desarrollo Web
Saberuneko 7 5,542 Último mensaje 21 Marzo 2014, 12:52 pm
por Saberuneko
Problemas con procedimiento almacenado en mysql
Bases de Datos
3n31ch 1 2,764 Último mensaje 11 Septiembre 2015, 03:18 am
por 0roch1
Busqueda de Registro con Procedimiento Almacenado en Sql Server
Programación Visual Basic
hamiltonbl 1 2,211 Último mensaje 18 Agosto 2015, 04:36 am
por ThunderCls
WAP2 - Aviso Legal - Powered by SMF 1.1.21 | SMF © 2006-2008, Simple Machines