el count() me tiene loco ya!
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!!!
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!!!
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.
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
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
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
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
