elhacker.net cabecera Bienvenido(a), Visitante. Por favor Ingresar o Registrarse
¿Perdiste tu email de activación?.
 
Inicio Ayuda Buscar Ingresar Registrarse
25 Mayo 2012, 03:07  


Tema destacado: [Overclocking] Récords de overclock del foro

+  Foro de elhacker.net
|-+  Programación
| |-+  Desarrollo Web
| | |-+  Bases de Datos
| | | |-+  Como hacer esta consulta??
0 Usuarios y 1 Visitante están viendo este tema.
Páginas: [1] Ir Abajo Respuesta Imprimir
Autor Tema: Como hacer esta consulta??  (Leído 2,050 veces)
El As del Club Paris


Desconectado Desconectado

Mensajes: 1.815


Ver Perfil WWW
Como hacer esta consulta??
« en: 8 Diciembre 2011, 21:56 »

Hola, tengo dos tablas. Una es la tabla oficinas la cual contiene un listado de oficinas, con su correspondiente id y nombre:



La otra es la tabla ordenadores la cual contiene el id, el fabricante y la oficina (id_oficina) a la que pertenece el ordenador:



Como habran notado la relacion entre ambas tablas esta dada por oficinas.id y ordenadores.id_oficina

Mi probemas es el siguinte. Deseo obtener un consulta la cual me liste todas las oficinas (con su id y nombre) y ademas me indique cual es la cantidad de ordenadores en dicha oficina, inclusi si dicha cantidad e cero (0), tal como se ve en la siguinte imagen:



No logro usar la visualizar como usar GROUP BY / COUNT de MySQL para obtener este resultado..alguien podria darme una manito?

Saludos


« Última modificación: 12 Diciembre 2011, 14:19 por El As del Club Paris » En línea

sudo suck --mycock -o force
Stoya

Desconectado Desconectado

Mensajes: 83


Nerviosismo esperando respuesta a tema.


Ver Perfil
Re: Como hacer esta consulta??
« Respuesta #1 en: 8 Diciembre 2011, 22:22 »

Ahí tienes la manita, no sé si funciona, no lo he probado, si no funciona, te toca arreglarlo a ti, pero debería haberte dado la idea al menos.

Código
SELECT o.id, o.oficina, c.ords FROM oficinas AS o JOIN
(SELECT ord.id_oficina, COUNT(id) FROM ordenadores AS ord GROUP BY ord.id_oficina) AS c
ON c.id_oficina = o.id;


En línea
El As del Club Paris


Desconectado Desconectado

Mensajes: 1.815


Ver Perfil WWW
Re: Como hacer esta consulta??
« Respuesta #2 en: 12 Diciembre 2011, 14:16 »

@Stoya gracias por tu respuesta, pero desgraciadamente no me sirve, porque asi solo me devuelve las oficinas que tienen un ordenador asignado, y yo quiero que me muestre todas, inclusive las que no tienen ninguno...alguna sugerencia mas?

Esto me esta frenando un proyecto entero. Podria ejecutar otra consulta en PHP para recuperar el numero de ordenadores asignados por oficina (en caso de que tuviera) y luego combinarlo, pero la idea es llevar toda la logica de datos a MySQL  :P

Saludos
En línea

sudo suck --mycock -o force
Stoya

Desconectado Desconectado

Mensajes: 83


Nerviosismo esperando respuesta a tema.


Ver Perfil
Re: Como hacer esta consulta??
« Respuesta #3 en: 14 Diciembre 2011, 03:35 »

Te toca hacer un select más, de todas las oficinas, restarle las que sí tienen ordenadores (que ya sabes cuáles son), y añadirle la columna de la cuenta con los ceros, con eso haces la unión con la subconsulta que te he dado.

Ahora aprende SQL y hazlo.
En línea
cassiani


Desconectado Desconectado

Mensajes: 946


« Anterior | Próximo »


Ver Perfil WWW
Re: Como hacer esta consulta??
« Respuesta #4 en: 14 Diciembre 2011, 22:33 »

Puedes hacer algo así

Código
SELECT ofi.oficina,o.fabricante,o.sistema_operativo,COUNT(*) AS total FROM ordenadores AS o JOIN oficinas AS ofi ON o.id_oficina=ofi.id_oficina 
GROUP BY oficina ORDER BY total DESC;
+------------------+------------+-------------------+-------+
| oficina          | fabricante | sistema_operativo | total |
+------------------+------------+-------------------+-------+
| servicio tecnico | hp         | ubuntu            |     3 |
| despacho         | ibm        | windows xp        |     2 |
| contaduria       | dell       | windows 7         |     1 |
+------------------+------------+-------------------+-------+
 
En línea

|Miguel|

Desconectado Desconectado

Mensajes: 182



Ver Perfil
Re: Como hacer esta consulta??
« Respuesta #5 en: 22 Diciembre 2011, 14:01 »

Si usas Oracle...

Código
SELECT O.ID, O.NOMBRE, COUNT(*) N_PCs 
  FROM OFICINAS O, ORDENADORES OR
  WHERE O.ID=OR.ID(+)
  GROUP BY O.ID, O.NOMBRE;
En línea
Páginas: [1] Ir Arriba Respuesta Imprimir 

Ir a:  

Mensajes similares
Asunto Iniciado por Respuestas Vistas Último mensaje
Cómo hacer esta consulta en MySql: Select distinct...
Bases de Datos
orion180 2 2,834 Último mensaje 21 Septiembre 2011, 20:10
por fran800m
Antes de hacer una consulta en esta sección lean esto « 1 2 »
Dispositivos Móviles (PDA's, Smartphones)
phreackgsm 22 52,377 Último mensaje 7 Enero 2011, 23:43
por zoarita
Cómo hacer esta consulta SQL
Bases de Datos
Aikanáro Anário 1 1,725 Último mensaje 17 Septiembre 2011, 01:56
por fran800m
[MYSQL] Otra forma de hacer esta consulta?
Bases de Datos
klaine 1 695 Último mensaje 12 Noviembre 2011, 15:07
por fran800m
Como realizar esta consulta en oracle??
Bases de Datos
Bhrentox 2 70 Último mensaje 23 Mayo 2012, 19:14
por Bulld0z3r
Powered by SMF 1.1.16 | SMF © 2006-2008, Simple Machines