Título: ayuda con select y group by
Publicado por: d91 en 9 Noviembre 2015, 13:31 pm
hola a todos, estoy tratando seleccionar las ventas del dia en Oracle pero no me funciona si trato de mostrar la suma por cada vendedor en la clausula grupo by SELECT T.nombreempleado FROM vendedor P JOIN cat_empleado T ON T.idempleado = P.empleado GROUP BY P.empleado
el problema esta al agregarle el group by y cuando quiero ver la suma por cada vendedor también me da problemas de esta forma SELECT T.nombreempleado, SUM(P.monto)total FROM vendedor P JOIN cat_empleado T ON T.idempleado = P.empleado GROUP BY P.empleado
y por ultimo necesitaría filtrar por fecha SELECT T.nombreempleado SUM(P.monto)total FROM vendedor P JOIN cat_empleado T ON T.idempleado = P.empleado WHERE P.fecha = '09/11/2015' GROUP BY p.empleado
agradezco la orientancion que me puedan dar
Título: Re: ayuda con select y group by
Publicado por: 0roch1 en 9 Noviembre 2015, 17:39 pm
Esto debería de funcionar. SELECT T.nombreempleado, SUM(P.monto) AS total FROM vendedor AS P, cat_empleado AS T WHERE P.fecha='2015-11-09' AND P.empleado=T.idempleado GROUP BY P.empleado
Solo ten cuidado con el formato de la fecha, en mi consulta la estoy manejando como si fuera tipo DATE.
Título: Re: ayuda con select y group by
Publicado por: d91 en 10 Noviembre 2015, 02:32 am
sigue con el error not group by expression solo me funciona con este: SELECT empleado, SUM(monto) AS total FROM vendedor GROUP BY empleado;
aunque necesito mostrar el nombre del empleado
Título: Re: ayuda con select y group by
Publicado por: d91 en 10 Noviembre 2015, 02:55 am
al final lo logre hacer funcionar, la regla es que en el group by deben ir todas las columnas a mostrar excepto la columna que sumará valores SELECT T.nombreempleado, SUM(P.monto) AS total FROM vendedor P JOIN cat_empleado T ON P.empleado = T.idempleado WHERE P.fecha = '09/11/2015' GROUP BY T.nombreempleado ORDER BY total DESC;
Título: Re: ayuda con select y group by
Publicado por: 0roch1 en 10 Noviembre 2015, 16:42 pm
al final lo logre hacer funcionar, la regla es que en el group by deben ir todas las columnas a mostrar excepto la columna que sumará valores SELECT T.nombreempleado, SUM(P.monto) AS total FROM vendedor P JOIN cat_empleado T ON P.empleado = T.idempleado WHERE P.fecha = '09/11/2015' GROUP BY T.nombreempleado ORDER BY total DESC;
Y si tienes dos empleados con diferente id (empleado) pero exactamente el mismo nombre?
Título: Re: ayuda con select y group by
Publicado por: d91 en 12 Noviembre 2015, 13:45 pm
yo pienso que primera hara la intersección FROM vendedor P JOIN cat_empleado T ON P.empleado = T.idempleado
Título: Re: ayuda con select y group by
Publicado por: 0roch1 en 12 Noviembre 2015, 16:55 pm
SELECT * FROM cat_empleado; +------------+-----------------+ | idempleado | nombreempleado | +------------+-----------------+ | 1 | Juan Perez | | 2 | Pilar Alcantara | | 3 | Juan Perez | +------------+-----------------+
SELECT * FROM vendedor; +----------+-------+------------+ | empleado | monto | fecha | +----------+-------+------------+ | 1 | 12.5 | 2015-11-09 | | 1 | 15.2 | 2015-11-09 | | 1 | 2.3 | 2015-11-08 | | 2 | 5.1 | 2015-11-07 | | 2 | 4.9 | 2015-11-09 | | 3 | 3 | 2015-11-09 | | 3 | 3 | 2015-11-09 | +----------+-------+------------+
La consulta que propongo. SELECT T.idempleado, T.nombreempleado, SUM(P.monto) AS total FROM vendedor AS P, cat_empleado AS T WHERE P.fecha='09/11/2015' AND P.empleado=T.idempleado GROUP BY T.idempleado; +------------+-----------------+-------+ | idempleado | nombreempleado | total | +------------+-----------------+-------+ | 1 | Juan Perez | 27.7 | | 2 | Pilar Alcantara | 4.9 | | 3 | Juan Perez | 6 | +------------+-----------------+-------+
La consulta que propones. SELECT T.nombreempleado, SUM(P.monto) AS total FROM vendedor P JOIN cat_empleado T ON P.empleado = T.idempleado WHERE P.fecha = '09/11/2015' GROUP BY T.nombreempleado ORDER BY total DESC; +-----------------+-------+ | nombreempleado | total | +-----------------+-------+ | Juan Perez | 33.7 | | Pilar Alcantara | 4.9 | +-----------------+-------+
sigue con el error not group by expression
Qué SMBD usas?
Título: Re: ayuda con select y group by
Publicado por: d91 en 18 Noviembre 2015, 16:28 pm
Oracle 11g
Título: Re: ayuda con select y group by
Publicado por: d91 en 18 Noviembre 2015, 16:50 pm
bueno creo que la respuesta a la pregunta es: seleccionar el id de los empleados para que distinga por id SELECT t.id,t.nombre, SUM(p.monto) AS total FROM vendedor p JOIN empleado t ON p.empleado = t.id WHERE p.fecha = sysdate GROUP BY t.id, t.nombre ORDER BY total DESC;
|