Duda en esta consulta

13/10/2009 - 23:23 por YoTipiando | Informe spam
Hola compañeros.. tengo una consulta donde me muestra en una grilla las
habitaciones que estan OCUPADAS , DISPONIBLES Y RESERVADA

SELECT tp.fecha, tp.nro_habitacion, tp.tipohabitacion,;
IIF(ISNULL(nro_hab),"DISPONIBLE",IIF(nro_hab="2","RESERVADA","OCUPADO
" )) as Estado_hab,tp.ubicacion,;
tp.marca;
FROM temp1 tp LEFT JOIN cur_diasocu ocu ;
ON DTOC(tp.fecha,1)+nro_habitacion = DTOC(ocu.fecha,1)+ocu.nro_hab;
INTO CURSOR cur_fechaDisponibles



la consulta me muestra los datos: y aqui viene la duda. todas las
reservadas me la muestra como OCUPADA salvo que sea la habitacion nro 2
en el segundo IIF " IIF(nro_hab="2","RESERVADA","OCUPADO " )) "
si tengo la habitacion 2 como RESERVADA si aparece como RESERVADA pero si
tengo la habitacion 50 como reservada. me aparece como OCUPADA Ahora
en el segundo IIF si cambio el 2 por el 50 , aparece el 50 como RESERVADA
y el 2 como OCUPADO

Lo que no se como ponerlo para que todas las habitaciones que este
RESERVADA en la consulta me muestre RESERVADA y las OCUPADAS como
OCUPADAS.

bueno muchas gracias desde ahora.. debe de ser sencillo pero no le
encuentro la vuelta de sacar el Nro 2 y poner algo como una Variable con
todos las habitaciones RESERVADAS...

Preguntas similare

Leer las respuestas

#11 YoTipiando
16/10/2009 - 05:52 | Informe spam
En el Sintax que tengo, me muestra todas las DISPONIBLES y las OCUPADAS
pero no las RESERVADAS al menos que en el segundo IIF la habitacion 50
este justo reservada , ahi si me muestra en la grilla dicha habitacion
que esta en estado RESERVADA pero solo me muestra esa sola habitacion
las otras que estan RESERVADAS no me la muestra.



SELECT tp.fecha, tp.nro_habitacion, tp.tipohabitacion,;
IIF(ISNULL(nro_hab),"DISPONIBLE",IIF(nro_hab="50","RESERVADA","OCUPADO
" )) as Estado_hab,tp.ubicacion,;
tp.marca;
FROM temp1 tp LEFT JOIN cur_diasocu ocu ;
ON DTOC(tp.fecha,1)+nro_habitacion = DTOC(ocu.fecha,1)+ocu.nro_hab;
INTO CURSOR cur_fechaDisponibles

a simple vista podria hacer un simple select * from tabla y listo pero
necesito filtrar la fecha a consultar




"Jose A. Blasco" escribió en el mensaje de
noticias:#
Creo que no he sabido exponerte mi duda.
Segun tu codigo,

si el campo 'nro_hab' esta vacio (realmente .null.), consideras que la
habitacion esta disponible
si el campo 'nro_hab' es igual a '48', la habitacion esta reservada
si el campo 'nro_hab' es diferente a '48', la habitacion esta ocupada

el campo 'nro_hab' lo tomas del fichero o cursor 'cur_diasocu'.
Mi pregunta es como distingues en este fichero o cursor, entre una
habitacion ocupada o reservada.
Tal como haces el 'select', solo comparas con la habitacion '48'.

Un saludo.
José A. Blasco
-
Zaragoza - España


"YoTipiando" escribió en el mensaje
news:
Claro lo que hace es todas las habitaciones estan DISPONIBLES . y a
su vez me muestra las OCUPADAS Y RESERVADA el tema es que en la
consulta las que estan RESERVADA me la muestra como OCUPADAS
cuando realmente estan RESERVADA excepto la nro 48 que es la que
esta en el segundo IIF.

-

"Jose A. Blasco" escribió en el mensaje de
noticias:#
¿ Como distingues entre que una habitacion este RESERVADA u OCUPADA ?
Aparentemente, todos los controles los haces por el campo 'nro_hab', que
supongo almacena el número de habitacion. Si en ambos casos (reservada
y ocupada) esta rellenado por el número de habitacion, no podrás
establecer una diferencia.

Un saludo.

José A. Blasco
-
Zaragoza - España


"YoTipiando" escribió en el mensaje
news:

en esta consulta me sale lo que quiero hacer

SELECT tp.nro_habitacion, tp.tipohabitacion,;
IIF(ISNULL(nro_hab),"DISPONIBLE",IIF(nro_hab="48","RESERVADA","OCUPADO
" )) as Estado_hab,tp.ubicacion,;
tp.marca,tp.fecha;
FROM temp1 tp LEFT JOIN cur_diasocu ocu ;
ON DTOC(tp.fecha,1)+nro_habitacion = DTOC(ocu.fecha,1)+ocu.nro_hab;
INTO CURSOR cur_fechaDisponibles

en este caso en el segundo IIF la habitacion 48 esta RESERVADA y me
sale como RESERVADA pero no se como encarar que en debe de hacer
referencia a solo el 48 . que sea una variable o algo para que me
muestre todas que estan RESERVADA , asi junto con todas las que
estan OCUPADA y todo las que estan DISPONIBLE




"extremo" escribió en el mensaje de
noticias:
No me queda claro cual es la condicion para conocer cuando una
habitacion se encuantra en estado "reservada"

Bendiciones













Respuesta Responder a este mensaje
#12 Jose A. Blasco
16/10/2009 - 11:36 | Informe spam
Entiendo el funcionamiento, de hecho, en la empresa en que trabajo
tambien tenemos un programa de hoteles, pero
? cual es el campo de tu BD que cambia de valor segun el estado de la
habitacion ?
Deberia tener 3 posibles valores o estados, que identifiquen
"DISPONIBLE", "RESERVADA" y "OCUPADA".
El campo que estas controlando 'nro_hab' solo tiene 2 valores, vacio o
lleno (creo haber entendido). En vacio, es habitacion disponible, pero
lleno ¿ lo utilizas tanto para 'RESERVADA', como para 'OCUPADA' ?.

Espero haberme explicado bien.

Un saludo.
José A. Blasco
-
Zaragoza - España


"YoTipiando" escribió en el mensaje
news:%
En el Sintax que tengo, me muestra todas las DISPONIBLES y las
OCUPADAS pero no las RESERVADAS al menos que en el segundo IIF
la habitacion 50 este justo reservada , ahi si me muestra en la
grilla dicha habitacion que esta en estado RESERVADA pero solo me
muestra esa sola habitacion las otras que estan RESERVADAS no me
la muestra.



SELECT tp.fecha, tp.nro_habitacion, tp.tipohabitacion,;
IIF(ISNULL(nro_hab),"DISPONIBLE",IIF(nro_hab="50","RESERVADA","OCUPADO
" )) as Estado_hab,tp.ubicacion,;
tp.marca;
FROM temp1 tp LEFT JOIN cur_diasocu ocu ;
ON DTOC(tp.fecha,1)+nro_habitacion = DTOC(ocu.fecha,1)+ocu.nro_hab;
INTO CURSOR cur_fechaDisponibles

a simple vista podria hacer un simple select * from tabla y listo
pero necesito filtrar la fecha a consultar




"Jose A. Blasco" escribió en el mensaje de
noticias:#
Creo que no he sabido exponerte mi duda.
Segun tu codigo,

si el campo 'nro_hab' esta vacio (realmente .null.), consideras que
la habitacion esta disponible
si el campo 'nro_hab' es igual a '48', la habitacion esta reservada
si el campo 'nro_hab' es diferente a '48', la habitacion esta ocupada

el campo 'nro_hab' lo tomas del fichero o cursor 'cur_diasocu'.
Mi pregunta es como distingues en este fichero o cursor, entre una
habitacion ocupada o reservada.
Tal como haces el 'select', solo comparas con la habitacion '48'.

Un saludo.
José A. Blasco
-
Zaragoza - España


"YoTipiando" escribió en el mensaje
news:
Claro lo que hace es todas las habitaciones estan DISPONIBLES .
y a su vez me muestra las OCUPADAS Y RESERVADA el tema es
que en la consulta las que estan RESERVADA me la muestra como
OCUPADAS cuando realmente estan RESERVADA excepto la nro 48 que
es la que esta en el segundo IIF.

-

"Jose A. Blasco" escribió en el mensaje de
noticias:#
¿ Como distingues entre que una habitacion este RESERVADA u OCUPADA
?
Aparentemente, todos los controles los haces por el campo
'nro_hab', que supongo almacena el número de habitacion. Si en
ambos casos (reservada y ocupada) esta rellenado por el número de
habitacion, no podrás establecer una diferencia.

Un saludo.

José A. Blasco
-
Zaragoza - España


"YoTipiando" escribió en el
mensaje news:

en esta consulta me sale lo que quiero hacer

SELECT tp.nro_habitacion, tp.tipohabitacion,;
IIF(ISNULL(nro_hab),"DISPONIBLE",IIF(nro_hab="48","RESERVADA","OCUPADO
" )) as Estado_hab,tp.ubicacion,;
tp.marca,tp.fecha;
FROM temp1 tp LEFT JOIN cur_diasocu ocu ;
ON DTOC(tp.fecha,1)+nro_habitacion =
DTOC(ocu.fecha,1)+ocu.nro_hab;
INTO CURSOR cur_fechaDisponibles

en este caso en el segundo IIF la habitacion 48 esta RESERVADA
y me sale como RESERVADA pero no se como encarar que en debe de
hacer referencia a solo el 48 . que sea una variable o algo para
que me muestre todas que estan RESERVADA , asi junto con
todas las que estan OCUPADA y todo las que estan DISPONIBLE




"extremo" escribió en el mensaje de
noticias:
No me queda claro cual es la condicion para conocer cuando una
habitacion se encuantra en estado "reservada"

Bendiciones













Respuesta Responder a este mensaje
#13 extremo
16/10/2009 - 15:47 | Informe spam
A simple vista todo indica que YOTIPIANDO tiene un problema de diseño
de la BD

Bendiciones
Respuesta Responder a este mensaje
#14 YoTipiando
17/10/2009 - 15:36 | Informe spam
hola amigo :

El campo que cambia en la BD es estado_hab en la tabla Alojamiento.
esto solo tiene dos valores cuando el poerador hace una alojamiento en la
BD se pone estado OCUPADA y si el operador hace una reserva en la misma BD
alojameinto se agrega estado RESERVADA

el estado DISPONIBLE se carcula al estar el campo 'nro_hab' vacio
('NULL') tal como tu dices . si esta lleno entonces comparo si ese
'nro_hab' tiene estado RESERVADA o OCUPADA en la tabla Alojamiento .
en 'estado_hab'

entonces la idea es que en la grilla me muestre cuales son las
habitaciones que estan RESERVADA y cuales son las que estan OCUPADA
y las demas que esten NULL me muestre DISPONIBLE

creo que te mande una cactura. no se si te llego..

saludo un abrazo... cualquier otra duda me notificas.



"Jose A. Blasco" escribió en el mensaje de
noticias:
Entiendo el funcionamiento, de hecho, en la empresa en que trabajo tambien
tenemos un programa de hoteles, pero
? cual es el campo de tu BD que cambia de valor segun el estado de la
habitacion ?
Deberia tener 3 posibles valores o estados, que identifiquen "DISPONIBLE",
"RESERVADA" y "OCUPADA".
El campo que estas controlando 'nro_hab' solo tiene 2 valores, vacio o
lleno (creo haber entendido). En vacio, es habitacion disponible, pero
lleno ¿ lo utilizas tanto para 'RESERVADA', como para 'OCUPADA' ?.

Espero haberme explicado bien.

Un saludo.
José A. Blasco
-
Zaragoza - España


"YoTipiando" escribió en el mensaje
news:%
En el Sintax que tengo, me muestra todas las DISPONIBLES y las
OCUPADAS pero no las RESERVADAS al menos que en el segundo IIF la
habitacion 50 este justo reservada , ahi si me muestra en la grilla
dicha habitacion que esta en estado RESERVADA pero solo me muestra
esa sola habitacion las otras que estan RESERVADAS no me la muestra.



SELECT tp.fecha, tp.nro_habitacion, tp.tipohabitacion,;
IIF(ISNULL(nro_hab),"DISPONIBLE",IIF(nro_hab="50","RESERVADA","OCUPADO
" )) as Estado_hab,tp.ubicacion,;
tp.marca;
FROM temp1 tp LEFT JOIN cur_diasocu ocu ;
ON DTOC(tp.fecha,1)+nro_habitacion = DTOC(ocu.fecha,1)+ocu.nro_hab;
INTO CURSOR cur_fechaDisponibles

a simple vista podria hacer un simple select * from tabla y listo pero
necesito filtrar la fecha a consultar




"Jose A. Blasco" escribió en el mensaje de
noticias:#
Creo que no he sabido exponerte mi duda.
Segun tu codigo,

si el campo 'nro_hab' esta vacio (realmente .null.), consideras que la
habitacion esta disponible
si el campo 'nro_hab' es igual a '48', la habitacion esta reservada
si el campo 'nro_hab' es diferente a '48', la habitacion esta ocupada

el campo 'nro_hab' lo tomas del fichero o cursor 'cur_diasocu'.
Mi pregunta es como distingues en este fichero o cursor, entre una
habitacion ocupada o reservada.
Tal como haces el 'select', solo comparas con la habitacion '48'.

Un saludo.
José A. Blasco
-
Zaragoza - España


"YoTipiando" escribió en el mensaje
news:
Claro lo que hace es todas las habitaciones estan DISPONIBLES . y a
su vez me muestra las OCUPADAS Y RESERVADA el tema es que en
la consulta las que estan RESERVADA me la muestra como OCUPADAS
cuando realmente estan RESERVADA excepto la nro 48 que es la que
esta en el segundo IIF.

-

"Jose A. Blasco" escribió en el mensaje de
noticias:#
¿ Como distingues entre que una habitacion este RESERVADA u OCUPADA ?
Aparentemente, todos los controles los haces por el campo 'nro_hab',
que supongo almacena el número de habitacion. Si en ambos casos
(reservada y ocupada) esta rellenado por el número de habitacion, no
podrás establecer una diferencia.

Un saludo.

José A. Blasco
-
Zaragoza - España


"YoTipiando" escribió en el mensaje
news:

en esta consulta me sale lo que quiero hacer

SELECT tp.nro_habitacion, tp.tipohabitacion,;
IIF(ISNULL(nro_hab),"DISPONIBLE",IIF(nro_hab="48","RESERVADA","OCUPADO
" )) as Estado_hab,tp.ubicacion,;
tp.marca,tp.fecha;
FROM temp1 tp LEFT JOIN cur_diasocu ocu ;
ON DTOC(tp.fecha,1)+nro_habitacion = DTOC(ocu.fecha,1)+ocu.nro_hab;
INTO CURSOR cur_fechaDisponibles

en este caso en el segundo IIF la habitacion 48 esta RESERVADA y me
sale como RESERVADA pero no se como encarar que en debe de hacer
referencia a solo el 48 . que sea una variable o algo para que me
muestre todas que estan RESERVADA , asi junto con todas las que
estan OCUPADA y todo las que estan DISPONIBLE




"extremo" escribió en el mensaje de
noticias:
No me queda claro cual es la condicion para conocer cuando una
habitacion se encuantra en estado "reservada"

Bendiciones



















Respuesta Responder a este mensaje
#15 YoTipiando
17/10/2009 - 15:40 | Informe spam
No.. no es problema de diseño en las BD es que no se como encarar la
sintax . porque la consulta me sale perfectamente menos un dato que no se
como ponerlo para que salga... de hecho si hago un simple select * from
tabla. me sale perfectamente con todos sus datos.. pero el tema es que
tengo que filtrar las fechas a seleccionar osea consultar el estado
de habitacion DESDE el 20/10/09 HASTA el 25/10/09 y me muestre
cuales estan DISPONIBLES o RESERVADAS o OCUPADAS

sencillito no...

bueno usare el metodo de papel y lapiz.. y a pensar... a la luz de la
vela...

"extremo" escribió en el mensaje de
noticias:
A simple vista todo indica que YOTIPIANDO tiene un problema de diseño
de la BD

Bendiciones
Respuesta Responder a este mensaje
Ads by Google
Help Hacer una preguntaSiguiente AnteriorRespuesta Tengo una respuesta
Search Busqueda sugerida