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...
 

Leer las respuestas

#1 LSC Juan de Dios Corrales Leal
14/10/2009 - 00:19 | Informe spam
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...



Preguntas similares