Foros del Web » Programación para mayores de 30 ;) » Bases de Datos General » Mysql »

[SOLUCIONADO] consulta dificil con select

Estas en el tema de consulta dificil con select en el foro de Mysql en Foros del Web. Que tal gente del foro resulta que hoy me he enfrentado a uno de los retos mas dificiles para mi aunque quizas sea una bobada ...
  #1 (permalink)  
Antiguo 14/12/2010, 10:05
 
Fecha de Ingreso: noviembre-2010
Mensajes: 181
Antigüedad: 13 años, 5 meses
Puntos: 2
consulta dificil con select

Que tal gente del foro resulta que hoy me he enfrentado a uno de los retos mas dificiles para mi aunque quizas sea una bobada pero bueno me acerco a ustedes por que no tengo bien el concepto de lo que debo hacer para extraer una consulta como la siguiente
tengo una tabla llamada hostal y otra tabla llamada ocupacion
en la tabla hostal tengo el idhostal y el nombre del hostal y en la tabla ocupacion tengo
__________________________
idocupacion |
fecha_ocup |
num_habitaciones_ocupadas |
total_perosonas_alojadas |
id_hostal |
-----------------------------------------
entonces con esos esos datos tengo que obtener una consulta donde pueda obtener

hostal habitaciones ocupadas
lunes martes miercoles jueves viernes sabado
la perla 3 5 6 7 8 9
el surco 4 6 11 12 9 7

total 7 11 17 19 17 16


es lo que necesito hacer pero mi duda es con esa tabla que tengo es posible hacer esto obviamente programado lo menos
o seria cambiar mi tabla en vez de tener un campo fecha tener un campo lunes, un campo martes, un campo miercoles... campo sabado aunque ahi veo el problema de como manipular las fechas o sea como saber que lunes de que fecha es el lunes que se esta insertando

bueno el chiste es que no tengo una idea clara y por eso pido su ayuda

por que ahorita lo que obtengo de la consulta es
la perla 12/02/2010 3
la perla 13/02/2010 5
la perla 14/02/2010 6
la perla 15/02/2010 7
la perla 16/02/2010 8
la perla 17/02/2010 9
el surco 12/02/2010 4
el surco 12/02/2010 6
el surco 12/02/2010 11
el surco 12/02/2010 12
el surco 12/02/2010 9
el surco 12/02/2010 7

y asi sucesivamente y los datos totales pues no los puedo obtener todavia
por eso pido alguan sugerencia y si es posible un ejemplo en codigo seria excelente
estoy haciendolo en php y mysql
  #2 (permalink)  
Antiguo 14/12/2010, 10:22
Avatar de Lord Kazuky  
Fecha de Ingreso: junio-2006
Ubicación: 7F.00.00.01
Mensajes: 123
Antigüedad: 17 años, 10 meses
Puntos: 5
Respuesta: consulta dificil con select

Bueno, no tengo mucho tiempo para hacer el SQL pero la idea es mas o menos la siguiente:

Hay una funcion en MYSQL para saber dada una fecha que numero del dia de la semana es:
DAYOFWEEK(date)

Retorna el índice del día de la semana para date (1 = domingo, 2 = lunes, ..., 7 = sábado). Estos valores del índice se corresponden con el estándar ODBC.

Te recomiendo visitar siempre la documentacion de MySQL te puede orientar bastante siempre. http://dev.mysql.com/doc/refman/5.0/...functions.html

Lo otro es que debes hacer una consulta para cada dia de la semana, una para el lunes, otra para el martes, etc. cada una en una columna aparte. Para eso puedes hacer consultas anidadas SELECT (SELECT XX.....) AS Lunes, (SELECT YY.....) AS Martes. Desde que puedas hacerlo para un dia, puedes hacerlo para os demas.

ESO o puedes sencillamente agregar una columna adicional que de diga el dia de la semana, y con el lenguaje de programacion construyes la tabla teniendo en cuenta ese dato.

Tambien creo, que la consulta deberia ser de la ultima semana, ya que con las columnas mostradas (que solo indican dias de la semana sin fechas) creo que no tiene sentido saber si el lunes de hace 2 meses antes habia una habitacion ocupada, eso seria un reporte diferente.

Espero te sirva de algo
__________________
Saludos.
"Cualquier tonto puede escribir código que un computador entiende. Los buenos programadores escriben código que los humanos pueden entender. ;)"
  #3 (permalink)  
Antiguo 14/12/2010, 10:36
 
Fecha de Ingreso: noviembre-2010
Mensajes: 181
Antigüedad: 13 años, 5 meses
Puntos: 2
Respuesta: consulta dificil con select

gracias por tus consejos exactamente es eso lo que necesito aunque veras me gusto lo de los select anidados pero mi problema sigue siendo el como estructurar la consulta pues ya revise lo de la funcion que me devuelve el dia de la semana el dia del mes el dia del año etc, pero no he logrado concretar una idea o sea no he podido estructurar bien una consulta de ese tipo
  #4 (permalink)  
Antiguo 15/12/2010, 16:35
 
Fecha de Ingreso: diciembre-2010
Mensajes: 4
Antigüedad: 13 años, 4 meses
Puntos: 0
Respuesta: consulta dificil con select

podrías intentar con este query , no ordena los datos exactamente como los muestras en tu pregunta pero con un lenguaje adicional podrías ordenarlos como los necesitas.

select b.nombre_hostal, date_format(a.fecha_ocup,'%a') as dia, count(*)
From ocupacion a,hostal b
where a.id_hostal=b.id_hostal
group by date_format(a.created_date,'%a')

Etiquetas: dificil, select
Atención: Estás leyendo un tema que no tiene actividad desde hace más de 6 MESES, te recomendamos abrir un Nuevo tema en lugar de responder al actual.
Respuesta




La zona horaria es GMT -6. Ahora son las 17:27.