elhacker.net cabecera Bienvenido(a), Visitante. Por favor Ingresar o Registrarse
¿Perdiste tu email de activación?.

 

 


Tema destacado: Introducción a Git (Primera Parte)


+  Foro de elhacker.net
|-+  Programación
| |-+  Desarrollo Web
| | |-+  Bases de Datos (Moderador: Carloswaldo)
| | | |-+  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 10,464 veces)
[u]nsigned


Desconectado Desconectado

Mensajes: 2.397

JS/Node developer


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

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 pm por El As del Club Paris » En línea

No hay atajo ante la duda, el misterio se hace aquí...
Se hace carne en cada uno, el misterio es existir!
Stoya

Desconectado Desconectado

Mensajes: 112


Esperando respuestas


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

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
  1. SELECT o.id, o.oficina, c.ords FROM oficinas AS o JOIN
  2. (SELECT ord.id_oficina, COUNT(id) FROM ordenadores AS ord GROUP BY ord.id_oficina) AS c
  3. ON c.id_oficina = o.id;


En línea

[u]nsigned


Desconectado Desconectado

Mensajes: 2.397

JS/Node developer


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

@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

No hay atajo ante la duda, el misterio se hace aquí...
Se hace carne en cada uno, el misterio es existir!
Stoya

Desconectado Desconectado

Mensajes: 112


Esperando respuestas


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

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: 978


« Anterior | Próximo »


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

Puedes hacer algo así

Código
  1. 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
  2. GROUP BY oficina ORDER BY total DESC;
  3. +------------------+------------+-------------------+-------+
  4. | oficina          | fabricante | sistema_operativo | total |
  5. +------------------+------------+-------------------+-------+
  6. | servicio tecnico | hp         | ubuntu            |     3 |
  7. | despacho         | ibm        | windows xp        |     2 |
  8. | contaduria       | dell       | windows 7         |     1 |
  9. +------------------+------------+-------------------+-------+
  10.  
En línea

|Miguel|

Desconectado Desconectado

Mensajes: 217



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

Si usas Oracle...

Código
  1. SELECT O.ID, O.NOMBRE, COUNT(*) N_PCs
  2.   FROM OFICINAS O, ORDENADORES OR
  3.   WHERE O.ID=OR.ID(+)
  4.   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 8,183 Último mensaje 21 Septiembre 2011, 20:10 pm
por fran800m
Cómo hacer esta consulta SQL
Bases de Datos
Aikanáro Anário 1 4,388 Último mensaje 17 Septiembre 2011, 01:56 am
por fran800m
Como realizar esta consulta en oracle??
Bases de Datos
Bhrentox 2 3,880 Último mensaje 23 Mayo 2012, 19:14 pm
por HdM
Como hacer esta consulta mysql desde php?
Bases de Datos
dyhsoluciones 1 3,198 Último mensaje 14 Julio 2012, 04:02 am
por Yoghurt
Como ejecutar esta consulta?
Programación Visual Basic
menu151 0 2,045 Último mensaje 5 Febrero 2013, 05:25 am
por menu151
WAP2 - Aviso Legal - Powered by SMF 1.1.21 | SMF © 2006-2008, Simple Machines