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

#16 YoTipiando
17/10/2009 - 15:58 | Informe spam
es sencillito en el segundo IIF solo necesito cambiar el 50 por alguna
variable o alguna sintax que me de todas las habitaciones RESERVADAS si
no estan reservadas entonces seran OCUPADAS



SELECT tp.nro_habitacion, tp.tipohabitacion,;
IIF(ISNULL(nro_hab),"DISPONIBLE",IIF(nro_hab="50","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




aqui le paso todo el sintax


SELECT fe.fecha , ocu.nro_hab , ocu.tipo_hab , ocu.estado_hab ,
ocu.ubicacion ,;
ocu.fecha_ingreso , ocu.fecha_retiro;
FROM fecha fe , alojamiento ocu ; *** en alojamiento son las nuevos
datos que van ingresando solo dos RESERVADA o OCUPADA ***
WHERE fe.fecha between ;
ocu.fecha_ingreso AND ocu.fecha_retiro;
INTO CURSOR cur_diasocu


SELECT fe.fecha, ha.nro_habitacion,
ha.tipohabitacion,ha.estado_hab,ha.ubicacion,;
ha.marca;
FROM fecha fe , habitacion ha ;
INTO CURSOR Temp1


SELECT tp.nro_habitacion, tp.tipohabitacion,;
IIF(ISNULL(nro_hab),"DISPONIBLE",IIF(nro_hab="50","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
Respuesta Responder a este mensaje
#17 YoTipiando
19/10/2009 - 01:18 | Informe spam
Hola amigo una duda. que parametro es la que me da para que sea 1 o 2 o 0
. porque me sale todo como 'QUIEN SABE'

?????

gracias de ante manos

"LSC Juan de Dios Corrales Leal" escribió en el mensaje
de noticias:#$
Pues yo soy de los que preferimos hacerlo a la fuerza bruta cuando no hay
alguna solucion LOGICA.

SELECT tp.fecha, tp.nro_habitacion, tp.tipohabitacion,nro_hab,;
SPACE(10) 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 READWRITE

SCAN
DO CASE
CASE nro_hab="0" && bueno aqui no se como lo manejes 0,1,2
replace Estado_hab with "DISPONIBLE"
CASE nro_hab="1"
replace Estado_hab with "OCUPADO"
CASE nro_hab="2"
replace Estado_hab with "RESERVADA"
OTHERWISE
replace Estado_hab with "QUIEN_SABE"
ENDCASE
ENDSCAN

a esto le llamo "a la fuerza bruta"... :)

Saludos.

YoTipiando escribió:
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...



Respuesta Responder a este mensaje
#18 YoTipiando
19/10/2009 - 05:04 | Informe spam
Listo problema resuelto. muchas gracias por aquellos que cooperaron...
a la verda fue de mucho alivio

al final quedo de esta manera


SELECT tp.nro_habitacion, tp.tipohabitacion,;
SPACE(10) as Estado_hab,tp.ubicacion,tp.marca,tp.fecha,ocu.nro_hab,ocu.m;
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 READWRITE

SCAN
DO CASE
CASE cur_fechaDisponibles.m=0
replace Estado_hab with "DISPONIBLE"
CASE cur_fechaDisponibles.m=1
replace Estado_hab with "OCUPADO"
CASE cur_fechaDisponibles.m=2
replace Estado_hab with "RESERVADA"
OTHERWISE
replace Estado_hab with "DISPONIBLE"
ENDCASE
ENDSCAN


En la tabla Alojamiento hice un campo referencial M donde asigno un valor
, segun el estado en que se encuentra las habitaciones. y en el CASE
filtro ese valor en cada rengron y listo con eso me ayudo hacer la
consulta que pretendia hacer..

gracias de ante manos . principalmente a LSC Juan de Dios Corrales
Leal



"YoTipiando" escribió en el mensaje de
noticias:
Hola amigo una duda. que parametro es la que me da para que sea 1 o 2 o
0 . porque me sale todo como 'QUIEN SABE'

?????

gracias de ante manos

"LSC Juan de Dios Corrales Leal" escribió en el
mensaje de noticias:#$
Pues yo soy de los que preferimos hacerlo a la fuerza bruta cuando no hay
alguna solucion LOGICA.

SELECT tp.fecha, tp.nro_habitacion, tp.tipohabitacion,nro_hab,;
SPACE(10) 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 READWRITE

SCAN
DO CASE
CASE nro_hab="0" && bueno aqui no se como lo manejes 0,1,2
replace Estado_hab with "DISPONIBLE"
CASE nro_hab="1"
replace Estado_hab with "OCUPADO"
CASE nro_hab="2"
replace Estado_hab with "RESERVADA"
OTHERWISE
replace Estado_hab with "QUIEN_SABE"
ENDCASE
ENDSCAN

a esto le llamo "a la fuerza bruta"... :)

Saludos.

YoTipiando escribió:
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...



email Siga el debate Respuesta Responder a este mensaje
Ads by Google
Help Hacer una pregunta AnteriorRespuesta Tengo una respuesta
Search Busqueda sugerida