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

Unir 2 sentencias con counts independientes

Estas en el tema de Unir 2 sentencias con counts independientes en el foro de Mysql en Foros del Web. Hola buenas he visto en otro post como unir varios counts pero o yo soy muy zopenco que puede ser o algo hago mal porque ...
  #1 (permalink)  
Antiguo 24/05/2010, 11:06
 
Fecha de Ingreso: mayo-2010
Mensajes: 4
Antigüedad: 13 años, 10 meses
Puntos: 0
Unir 2 sentencias con counts independientes

Hola buenas he visto en otro post como unir varios counts pero o yo soy muy zopenco que puede ser o algo hago mal porque a mi no me funciona.
Les espongo el caso:

Tengo que implementar 2 consultas que he conseguido que funcionen de manera independiente en una sola consulta.
El problema es que las consultas llevan la funcion count y al intentar construirlas en una sola los counts devuelven las 2 salidas iguales.

Les pongo las 2 consultas que cada una cumple su funcion de manera independiente a ver si mi podeis echar un cable:

select especialidad.nombre_especialidad, count(cama.num_cama) from especialidad,cama,habitacion where habitacion.num_habitacion=cama.num_habitacion and habitacion.num_planta=especialidad.num_planta group by nombre_especialidad;

select especialidad.nombre_especialidad, count(cama.num_cama) from especialidad,cama,habitacion where habitacion.num_habitacion=cama.num_habitacion and habitacion.num_planta=especialidad.num_planta and cama.num_paciente is null group by nombre_especialidad;

Lo que tienen que hacer en conjunto es mostrarme en una tabla las especialiadades, en la siguiente las camas de las que dispone cada especialidad y en la tercera las camas libres de cada especialidad.
Si necesitan mas detalles diganmelo.
Estoy usando mysql.
Espero su respuesta, muchisimas gracias y un saludo
  #2 (permalink)  
Antiguo 25/05/2010, 11:19
 
Fecha de Ingreso: mayo-2010
Mensajes: 4
Antigüedad: 13 años, 10 meses
Puntos: 0
Respuesta: Unir 2 sentencias con counts independientes

Bueno he cambiado un poco las condiciones y he llegado a la conclusion de que tengo que utilizar inner join, pero me da un error y creo que es porque con inner join ay que utilizar alias, el error que me da es el siguiente:

Every derived table must have its own alias.

Y la sentencia a la que he llegado tiene esta forma,

SELECT habitacion.nombre_especialidad, count( DISTINCT habitacion.num_habitacion ) FROM habitacion inner join(select count( DISTINCT cama.num_cama ) from cama, movimientos where cama.num_cama=movimientos.num_cama and movimientos.fecha_salida<=current_Date()) WHERE habitacion.num_habitacion = cama.num_habitacion group BY habitacion.nombre_especialidad;

Necesito que por un lado me cuente las habitaciones que para eso es el primer count y por otro lado el numero de camas libres que para eso es el segundo count.

A ver si alguien me echa una mano.
Un saludo y gracias

Etiquetas: independientes, sentencias, unir
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 13:14.