Autor
|
Tema: Como hacer esta consulta?? (Leído 10,666 veces)
|
[u]nsigned
Desconectado
Mensajes: 2.397
JS/Node developer
|
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_oficinaMi 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
Mensajes: 112
Esperando respuestas
|
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. 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
|
|
|
|
[u]nsigned
Desconectado
Mensajes: 2.397
JS/Node developer
|
@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 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
Mensajes: 112
Esperando respuestas
|
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
Mensajes: 978
« Anterior | Próximo »
|
Puedes hacer algo así 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
Mensajes: 217
|
Si usas Oracle... 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
|
|
|
|
|
Mensajes similares |
|
Asunto |
Iniciado por |
Respuestas |
Vistas |
Último mensaje |
|
|
Cómo hacer esta consulta en MySql: Select distinct...
Bases de Datos
|
orion180
|
2
|
8,596
|
21 Septiembre 2011, 20:10 pm
por fran800m
|
|
|
Cómo hacer esta consulta SQL
Bases de Datos
|
Aikanáro Anário
|
1
|
4,517
|
17 Septiembre 2011, 01:56 am
por fran800m
|
|
|
Como realizar esta consulta en oracle??
Bases de Datos
|
Bhrentox
|
2
|
4,073
|
23 Mayo 2012, 19:14 pm
por HdM
|
|
|
Como hacer esta consulta mysql desde php?
Bases de Datos
|
dyhsoluciones
|
1
|
3,381
|
14 Julio 2012, 04:02 am
por Yoghurt
|
|
|
Como ejecutar esta consulta?
Programación Visual Basic
|
menu151
|
0
|
2,341
|
5 Febrero 2013, 05:25 am
por menu151
|
|