Cual es la mejor forma de implementar un Group by...

26/08/2009 - 04:21 por YoTipiando | Informe spam
siempre tube problema con las consultas GROUP BY nunca hacen lo que quiero
filtrar. por ejemplo tengo esta

SELECT
cur_fechaseleccionada.nro_habitacion,cur_fechaseleccionada.tipohabitacion,;
cur_fechaseleccionada.estado_hab,cur_fechaseleccionada.ubicacion,;
cur_fechaseleccionada.marca,cur_fechaseleccionada.fecha FROM
cur_fechaseleccionada;
where cur_fechaseleccionada.tipohabitacion=xtipoHabitacion_disponible AND ;
cur_fechaseleccionada.fecha=>xfechaDesde1;
AND cur_fechaseleccionada.fecha<=xfechaHasta2;
GROUP BY
cur_fechaseleccionada.nro_habitacion,cur_fechaseleccionada.tipohabitacion,;
cur_fechaseleccionada.estado_hab,cur_fechaseleccionada.ubicacion,;
cur_fechaseleccionada.marca,cur_fechaseleccionada.fecha;
INTO CURSOR cu_consul_fechaseleccionada


el tema es que consulto habitaciones disponbles segun la fecha pero que
hace si consulto una habitacion segun su tipo de habitacion ("SIMPLE") que
hace.!!! se multiplica la misma habitacion segun la cantidad de dias puesto
en la fechas disponibles. me explico

si pongo consultar la habitacion 23 SIMPLE , lunes martes y miercoles.
pues me aparece tres veces la 23 SIMPLE

la idea es que solo aparezca una sola vez no importa la fecha que
consultas.



que opinan. gracias de ante manos.

Preguntas similare

Leer las respuestas

#1 Mario Dal Degan
26/08/2009 - 14:50 | Informe spam
Si tienes problemas frecuentemente te puedo recomendar utilizar el asistente
para vistas y analizar los resultados que surgen a partir de como armes tu
vista. No es una forma académica ni ortodoxa pero me ha dado resultado.


"YoTipiando" escribió en el mensaje
news:
siempre tube problema con las consultas GROUP BY nunca hacen lo que
quiero filtrar. por ejemplo tengo esta

SELECT
cur_fechaseleccionada.nro_habitacion,cur_fechaseleccionada.tipohabitacion,;
cur_fechaseleccionada.estado_hab,cur_fechaseleccionada.ubicacion,;
cur_fechaseleccionada.marca,cur_fechaseleccionada.fecha FROM
cur_fechaseleccionada;
where cur_fechaseleccionada.tipohabitacion=xtipoHabitacion_disponible AND
;
cur_fechaseleccionada.fecha=>xfechaDesde1;
AND cur_fechaseleccionada.fecha<=xfechaHasta2;
GROUP BY
cur_fechaseleccionada.nro_habitacion,cur_fechaseleccionada.tipohabitacion,;
cur_fechaseleccionada.estado_hab,cur_fechaseleccionada.ubicacion,;
cur_fechaseleccionada.marca,cur_fechaseleccionada.fecha;
INTO CURSOR cu_consul_fechaseleccionada


el tema es que consulto habitaciones disponbles segun la fecha pero que
hace si consulto una habitacion segun su tipo de habitacion ("SIMPLE")
que hace.!!! se multiplica la misma habitacion segun la cantidad de dias
puesto en la fechas disponibles. me explico

si pongo consultar la habitacion 23 SIMPLE , lunes martes y miercoles.
pues me aparece tres veces la 23 SIMPLE

la idea es que solo aparezca una sola vez no importa la fecha que
consultas.



que opinan. gracias de ante manos.
Respuesta Responder a este mensaje
#2 extremo
26/08/2009 - 15:30 | Informe spam
On 25 ago, 22:21, "YoTipiando"
wrote:
siempre tube problema con las consultas  GROUP BY  nunca hacen lo que quiero
filtrar.  por ejemplo  tengo esta

SELECT
cur_fechaseleccionada.nro_habitacion,cur_fechaseleccionada.tipohabitacion,;
cur_fechaseleccionada.estado_hab,cur_fechaseleccionada.ubicacion,;
cur_fechaseleccionada.marca,cur_fechaseleccionada.fecha FROM
cur_fechaseleccionada;
where cur_fechaseleccionada.tipohabitacion=xtipoHabitacion_disponible AND ;
cur_fechaseleccionada.fecha=>xfechaDesde1;
AND cur_fechaseleccionada.fecha<=xfechaHasta2;
GROUP BY
cur_fechaseleccionada.nro_habitacion,cur_fechaseleccionada.tipohabitacion,;
cur_fechaseleccionada.estado_hab,cur_fechaseleccionada.ubicacion,;
cur_fechaseleccionada.marca,cur_fechaseleccionada.fecha;
INTO CURSOR cu_consul_fechaseleccionada

el tema es que consulto  habitaciones disponbles segun la fecha  pero que
hace  si consulto una habitacion segun su  tipo de habitacion ("SIMPLE") que
hace.!!! se multiplica  la misma habitacion segun la cantidad de dias puesto
en la fechas disponibles.   me explico

si pongo consultar la habitacion  23 SIMPLE   , lunes martes y miercoles.
pues me aparece  tres veces la  23 SIMPLE

la idea es que solo  aparezca una sola vez   no importa la fecha que
consultas.

que opinan.  gracias de ante manos.



Si te aparece tres veces la 23 SIMPLE la respuesta es simple. es
porque esa habitacion esta disponible los dias lunes martes y
miercoles. Si quieres que te aparesca una sola vez tendrias que acotar
mas el group by pero te daria una consulta erronea, lo mas probable es
que te aparesca 23 SIMPLE dia miercoles.

Si no vas a mostrar la fecha y solo te importa la habitacion
coloca este group by
GROUP BY

cur_fechaseleccionada.nro_habitacion,cur_fechaseleccionada.tipohabitacion,;
cur_fechaseleccionada.estado_hab,cur_fechaseleccionada.ubicacion,;
cur_fechaseleccionada.marca

El campo cur_fechaseleccionada.estado_hab podria hacer que te repita
la habitacion si tiene distintos estados para los dias lunes martes y
miercoles

Bendiciones...espero haber sido de ayuda
Respuesta Responder a este mensaje
#3 YoTipiando
31/08/2009 - 03:36 | Informe spam
Hola amigo gracias por contestar.. esa seria la idea de filtrar como
unica vez las habitaciones disponibles sin que muestre la fecha... ya que
no es necesario mostras las fechas porque eso lo estoy haciendo para
verificar cuales son los dias que esa habitacion esta disponible...

si por ejemplo habiatacion SIMPLE son 5 , 20 y 30 hago una consulta
de lunes a miercoles , y si estan disponibles que solo salgan una sola vez
y no tres veces por cada habitacion.

en caso de que la habitacion 20 este ocupada esos dias, solo apareceran
la 5 y la 30 , o si la 20 esta ocupada hasta el martes , aparecera el
miercoles,, pero bueno ya esa consulta la tengo realizada el tema es que
se me repite la misma habitacion por x cantidad de dias que consulte...

probare tu ejemplo y te aviso...

"extremo" escribió en el mensaje de
noticias:
On 25 ago, 22:21, "YoTipiando"
wrote:
siempre tube problema con las consultas GROUP BY nunca hacen lo que
quiero
filtrar. por ejemplo tengo esta

SELECT
cur_fechaseleccionada.nro_habitacion,cur_fechaseleccionada.tipohabitacion,;
cur_fechaseleccionada.estado_hab,cur_fechaseleccionada.ubicacion,;
cur_fechaseleccionada.marca,cur_fechaseleccionada.fecha FROM
cur_fechaseleccionada;
where cur_fechaseleccionada.tipohabitacion=xtipoHabitacion_disponible AND
;
cur_fechaseleccionada.fecha=>xfechaDesde1;
AND cur_fechaseleccionada.fecha<=xfechaHasta2;
GROUP BY
cur_fechaseleccionada.nro_habitacion,cur_fechaseleccionada.tipohabitacion,;
cur_fechaseleccionada.estado_hab,cur_fechaseleccionada.ubicacion,;
cur_fechaseleccionada.marca,cur_fechaseleccionada.fecha;
INTO CURSOR cu_consul_fechaseleccionada

el tema es que consulto habitaciones disponbles segun la fecha pero que
hace si consulto una habitacion segun su tipo de habitacion ("SIMPLE")
que
hace.!!! se multiplica la misma habitacion segun la cantidad de dias
puesto
en la fechas disponibles. me explico

si pongo consultar la habitacion 23 SIMPLE , lunes martes y miercoles.
pues me aparece tres veces la 23 SIMPLE

la idea es que solo aparezca una sola vez no importa la fecha que
consultas.

que opinan. gracias de ante manos.



Si te aparece tres veces la 23 SIMPLE la respuesta es simple. es
porque esa habitacion esta disponible los dias lunes martes y
miercoles. Si quieres que te aparesca una sola vez tendrias que acotar
mas el group by pero te daria una consulta erronea, lo mas probable es
que te aparesca 23 SIMPLE dia miercoles.

Si no vas a mostrar la fecha y solo te importa la habitacion
coloca este group by
GROUP BY

cur_fechaseleccionada.nro_habitacion,cur_fechaseleccionada.tipohabitacion,;
cur_fechaseleccionada.estado_hab,cur_fechaseleccionada.ubicacion,;
cur_fechaseleccionada.marca

El campo cur_fechaseleccionada.estado_hab podria hacer que te repita
la habitacion si tiene distintos estados para los dias lunes martes y
miercoles

Bendiciones...espero haber sido de ayuda
Respuesta Responder a este mensaje
#4 YoTipiando
31/08/2009 - 03:38 | Informe spam
las vistas.. ??? como lo hago para depurar uso mucho el SET STEP ON
pero en este caso tendria que analizar una sintax..

"Mario Dal Degan" escribió en el mensaje de
noticias:
Si tienes problemas frecuentemente te puedo recomendar utilizar el
asistente para vistas y analizar los resultados que surgen a partir de
como armes tu vista. No es una forma académica ni ortodoxa pero me ha dado
resultado.


"YoTipiando" escribió en el mensaje
news:
siempre tube problema con las consultas GROUP BY nunca hacen lo que
quiero filtrar. por ejemplo tengo esta

SELECT
cur_fechaseleccionada.nro_habitacion,cur_fechaseleccionada.tipohabitacion,;
cur_fechaseleccionada.estado_hab,cur_fechaseleccionada.ubicacion,;
cur_fechaseleccionada.marca,cur_fechaseleccionada.fecha FROM
cur_fechaseleccionada;
where cur_fechaseleccionada.tipohabitacion=xtipoHabitacion_disponible AND
;
cur_fechaseleccionada.fecha=>xfechaDesde1;
AND cur_fechaseleccionada.fecha<=xfechaHasta2;
GROUP BY
cur_fechaseleccionada.nro_habitacion,cur_fechaseleccionada.tipohabitacion,;
cur_fechaseleccionada.estado_hab,cur_fechaseleccionada.ubicacion,;
cur_fechaseleccionada.marca,cur_fechaseleccionada.fecha;
INTO CURSOR cu_consul_fechaseleccionada


el tema es que consulto habitaciones disponbles segun la fecha pero que
hace si consulto una habitacion segun su tipo de habitacion ("SIMPLE")
que hace.!!! se multiplica la misma habitacion segun la cantidad de dias
puesto en la fechas disponibles. me explico

si pongo consultar la habitacion 23 SIMPLE , lunes martes y miercoles.
pues me aparece tres veces la 23 SIMPLE

la idea es que solo aparezca una sola vez no importa la fecha que
consultas.



que opinan. gracias de ante manos.




Respuesta Responder a este mensaje
#5 YoTipiando
31/08/2009 - 03:49 | Informe spam
hola amigo me dio resultado tu ejemplo sacandole la fecha al Group by ,
pero tambien se la tube que sacar al renglon del select porque sino me daba
error de sintax..

gracias nuevamente

"YoTipiando" escribió en el mensaje de
noticias:##cr#
Hola amigo gracias por contestar.. esa seria la idea de filtrar como
unica vez las habitaciones disponibles sin que muestre la fecha... ya
que no es necesario mostras las fechas porque eso lo estoy haciendo para
verificar cuales son los dias que esa habitacion esta disponible...

si por ejemplo habiatacion SIMPLE son 5 , 20 y 30 hago una consulta
de lunes a miercoles , y si estan disponibles que solo salgan una sola
vez
y no tres veces por cada habitacion.

en caso de que la habitacion 20 este ocupada esos dias, solo apareceran
la 5 y la 30 , o si la 20 esta ocupada hasta el martes , aparecera el
miercoles,, pero bueno ya esa consulta la tengo realizada el tema es que
se me repite la misma habitacion por x cantidad de dias que consulte...

probare tu ejemplo y te aviso...

"extremo" escribió en el mensaje de
noticias:
On 25 ago, 22:21, "YoTipiando"
wrote:
siempre tube problema con las consultas GROUP BY nunca hacen lo que
quiero
filtrar. por ejemplo tengo esta

SELECT
cur_fechaseleccionada.nro_habitacion,cur_fechaseleccionada.tipohabitacion,;
cur_fechaseleccionada.estado_hab,cur_fechaseleccionada.ubicacion,;
cur_fechaseleccionada.marca,cur_fechaseleccionada.fecha FROM
cur_fechaseleccionada;
where cur_fechaseleccionada.tipohabitacion=xtipoHabitacion_disponible
AND ;
cur_fechaseleccionada.fecha=>xfechaDesde1;
AND cur_fechaseleccionada.fecha<=xfechaHasta2;
GROUP BY
cur_fechaseleccionada.nro_habitacion,cur_fechaseleccionada.tipohabitacion,;
cur_fechaseleccionada.estado_hab,cur_fechaseleccionada.ubicacion,;
cur_fechaseleccionada.marca,cur_fechaseleccionada.fecha;
INTO CURSOR cu_consul_fechaseleccionada

el tema es que consulto habitaciones disponbles segun la fecha pero
que
hace si consulto una habitacion segun su tipo de habitacion ("SIMPLE")
que
hace.!!! se multiplica la misma habitacion segun la cantidad de dias
puesto
en la fechas disponibles. me explico

si pongo consultar la habitacion 23 SIMPLE , lunes martes y
miercoles.
pues me aparece tres veces la 23 SIMPLE

la idea es que solo aparezca una sola vez no importa la fecha que
consultas.

que opinan. gracias de ante manos.



Si te aparece tres veces la 23 SIMPLE la respuesta es simple. es
porque esa habitacion esta disponible los dias lunes martes y
miercoles. Si quieres que te aparesca una sola vez tendrias que acotar
mas el group by pero te daria una consulta erronea, lo mas probable es
que te aparesca 23 SIMPLE dia miercoles.

Si no vas a mostrar la fecha y solo te importa la habitacion
coloca este group by
GROUP BY

cur_fechaseleccionada.nro_habitacion,cur_fechaseleccionada.tipohabitacion,;
cur_fechaseleccionada.estado_hab,cur_fechaseleccionada.ubicacion,;
cur_fechaseleccionada.marca

El campo cur_fechaseleccionada.estado_hab podria hacer que te repita
la habitacion si tiene distintos estados para los dias lunes martes y
miercoles

Bendiciones...espero haber sido de ayuda



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