Ver Mensaje Individual
  #2 (permalink)  
Antiguo 07/05/2010, 21:48
Avatar de gnzsoloyo
gnzsoloyo
Moderador criollo
 
Fecha de Ingreso: noviembre-2007
Ubicación: Actualmente en Buenos Aires (el enemigo ancestral)
Mensajes: 23.324
Antigüedad: 17 años
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)