Foros del Web » Programación para mayores de 30 ;) » Bases de Datos General »

Duda con consulta (COUNT, SUM y Group BY)

Estas en el tema de Duda con consulta (COUNT, SUM y Group BY) en el foro de Bases de Datos General en Foros del Web. Hola! Miren tengo estas 3 tablas. Empresa: Que contiene un ID, Nombre etc. Departamento: Que tiene un ID, ID_EMPRESA, Nombre etc. Empleado: Que tiene un ...
  #1 (permalink)  
Antiguo 07/05/2010, 20:55
 
Fecha de Ingreso: enero-2010
Mensajes: 88
Antigüedad: 14 años, 3 meses
Puntos: 2
Duda con consulta (COUNT, SUM y Group BY)

Hola!

Miren tengo estas 3 tablas.

Empresa: Que contiene un ID, Nombre etc.
Departamento: Que tiene un ID, ID_EMPRESA, Nombre etc.
Empleado: Que tiene un ID, NOMBRE, SUELDO etc.

Necesito hacer una consulta que me muestre algo asi:

Nombre Departamento | Cantidad de Empleados | Y la suma del sueldo de todos los empleados.

Mi consulta es algo asi:
Código PHP:
SELECT D.NOMBRECOUNT(E.ID), SUM(E.SUELDO)
FROM DEPARTAMENTO DEMPLEADO E 
WHERE D
.ID E.ID_DEPARTAMENTO AND D.ID_EMPRESA 100
GROUP BY E
.ID
Pero me da problemas el Group By. Ayuda please.
  #2 (permalink)  
Antiguo 07/05/2010, 21:48
Avatar de gnzsoloyo
Moderador criollo
 
Fecha de Ingreso: noviembre-2007
Ubicación: Actualmente en Buenos Aires (el enemigo ancestral)
Mensajes: 23.324
Antigüedad: 16 años, 4 meses
Puntos: 2658
Respuesta: Duda con consulta (COUNT, SUM y Group BY)

Todo depende de qué DBMS uses.
Oracle y MS SQL Server exigen que todos los campos del SELECT no afectados por funciones agregadas deben estar en el GROUP BY, por lo que para que funcionase debería ser:
Código SQL:
Ver original
  1. SELECT D.NOMBRE, COUNT(E.ID), SUM(E.SUELDO)
  2. FROM DEPARTAMENTO D INNER JOIN  EMPLEADO E ON D.ID = E.ID_DEPARTAMENTO
  3. WHERE D.ID_EMPRESA = 100
  4. GROUP BY D.NOMBRE
En el caso de MySQL, sí admite que los campos del GROUP BY puedan invocar a columnas que no aparecen en el SELECT. De modo que tu sentencia se ajusta a la sintaxis de MySQL:

Código MySQL:
Ver original
  1. SELECT D.NOMBRE, COUNT(E.ID), SUM(E.SUELDO)
  2. FROM DEPARTAMENTO D INNER JOIN EMPLEADO E ON D.ID = E.ID_DEPARTAMENTO
  3. WHERE D.ID_EMPRESA = 100
  4. GROUP BY E.ID;
__________________
¿A quién le enseñan sus aciertos?, si yo aprendo de mis errores constantemente...
"El problema es la interfase silla-teclado." (Gillermo Luque)
  #3 (permalink)  
Antiguo 07/05/2010, 21:53
 
Fecha de Ingreso: enero-2010
Mensajes: 88
Antigüedad: 14 años, 3 meses
Puntos: 2
Respuesta: Duda con consulta (COUNT, SUM y Group BY)

Muchas gracias

Etiquetas: count, group, sum
Atención: Estás leyendo un tema que no tiene actividad desde hace más de 6 MESES, te recomendamos abrir un Nuevo tema en lugar de responder al actual.
Respuesta




La zona horaria es GMT -6. Ahora son las 17:22.