el count() me tiene loco ya!

Vun
20 de Agosto del 2003
Hola a todos

Lo que debiera ser una consulta sencilla esta acabando con mis nervios! seguro que alguno de ustedes sabria ayudarme. Trabajo con Mysql, y digamos que estas son las tablas:

EMPRESA con campos ID_emp, Nombre_emp
TRABAJADORES con campos ID_Tra, Nombre_tra
OFICINAS con campos ID_ofi, Nombre_ofi

Donde logicamente, 1 empresa tiene muchos trabajadores y muchas oficinas. Pues necesito la consulta que me de el listado de empresas junto con su nº total de trabajadores y nºtotal de oficinas, esto seria un ejemplo:

Nombre_Emp _____ Trabajadores ______ Oficinas

Kelme ________________ 50 _______________7 _____
Nike __________________80 _______________ 9 _____
McDonald ____________ 110 _______________ 15 ____

He probado ya de varias formas y solo consigo el listado con el nombre de la empresa y el total de trabajadores, pero no el de oficinas.

Bueno, si alguien quiere tomarselo como un reto, se lo agradecere igualmente, gracias de antemano!!!

gabriel
20 de Agosto del 2003

Esta es una consulta muy curiosa y creo poder responderte Vun.

Select E.Nombre_emp,Count(distinct ID_ofi),Count(distinct ID_ofi)
From Empresas E(Nolock)
,Oficinas O(Nolock)
,TRABAJADORES T(Nolock)
Where E.ID_emp = O.ID_emp
And E.ID_emp = T.ID_emp
Group by E.Nombre_emp

Espero que mi contestacion te sirva.










gabriel
20 de Agosto del 2003
disculpa el ultimo campo esta incorrecto

esto es lo correcto

Select E.Nombre_emp,Count(distinct O.ID_ofi),Count(distinct T.ID_Tra)
From Empresas E(Nolock)
,Oficinas O(Nolock)
,TRABAJADORES T(Nolock)
Where E.ID_emp = O.ID_emp
And E.ID_emp = T.ID_emp
Group by E.Nombre_emp

Ricardo
20 de Agosto del 2003
si esos son los unico campos que tienen las tablas, cro que te faltaria algun campo que relacionase una tabla con otra, por ejemplo en la tabla trabajadores podrias pones un campo con el identidicador de empresa para saber que un trabajador trabaja en una empresa determinada
si lo haces asi ya es facil sacar el total de trabajadores de cada empresa
y lo mismo debes hacer con la tabla oficinas, añadirle un campo que contenga el Id de la empresa