elhacker.net cabecera Bienvenido(a), Visitante. Por favor Ingresar o Registrarse
¿Perdiste tu email de activación?.

 

 


Tema destacado: Estamos en la red social de Mastodon


+  Foro de elhacker.net
|-+  Programación
| |-+  Desarrollo Web
| | |-+  Bases de Datos (Moderador: Carloswaldo)
| | | |-+  ayuda con select y group by
0 Usuarios y 1 Visitante están viendo este tema.
Páginas: [1] Ir Abajo Respuesta Imprimir
Autor Tema: ayuda con select y group by  (Leído 4,124 veces)
d91

Desconectado Desconectado

Mensajes: 165


Ver Perfil
ayuda con select y group by
« 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
Código
  1. SELECT T.nombreempleado FROM vendedor P JOIN cat_empleado T ON T.idempleado = P.empleado GROUP BY P.empleado
  2.  
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
Código
  1. SELECT T.nombreempleado, SUM(P.monto)total FROM vendedor P JOIN cat_empleado T ON T.idempleado = P.empleado GROUP BY P.empleado
  2.  
y por ultimo necesitaría filtrar por fecha
Código
  1. 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
  2.  
agradezco la orientancion que me puedan dar


« Última modificación: 9 Noviembre 2015, 13:52 pm por d91 » En línea

0roch1

Desconectado Desconectado

Mensajes: 123



Ver Perfil
Re: ayuda con select y group by
« Respuesta #1 en: 9 Noviembre 2015, 17:39 pm »

Esto debería de funcionar.

Código
  1. SELECT T.nombreempleado, SUM(P.monto) AS total FROM vendedor AS P, cat_empleado AS T WHERE P.fecha='2015-11-09'
  2. AND P.empleado=T.idempleado
  3. GROUP BY P.empleado
  4.  

Solo ten cuidado con el formato de la fecha, en mi consulta la estoy manejando como si fuera tipo DATE.



En línea

d91

Desconectado Desconectado

Mensajes: 165


Ver Perfil
Re: ayuda con select y group by
« Respuesta #2 en: 10 Noviembre 2015, 02:32 am »

sigue con el error not group by expression
solo me funciona con este:
Código
  1. SELECT empleado, SUM(monto) AS total FROM vendedor GROUP BY empleado;
  2.  
aunque necesito mostrar el nombre del empleado
En línea

d91

Desconectado Desconectado

Mensajes: 165


Ver Perfil
Re: ayuda con select y group by
« Respuesta #3 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
Código
  1.  
  2. SELECT T.nombreempleado, SUM(P.monto) AS total
  3. FROM vendedor P JOIN cat_empleado T
  4. ON P.empleado = T.idempleado
  5. WHERE P.fecha = '09/11/2015'
  6. GROUP BY T.nombreempleado ORDER BY total DESC;
  7.  
En línea

0roch1

Desconectado Desconectado

Mensajes: 123



Ver Perfil
Re: ayuda con select y group by
« Respuesta #4 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
Código
  1.  
  2. SELECT T.nombreempleado, SUM(P.monto) AS total
  3. FROM vendedor P JOIN cat_empleado T
  4. ON P.empleado = T.idempleado
  5. WHERE P.fecha = '09/11/2015'
  6. GROUP BY T.nombreempleado ORDER BY total DESC;
  7.  

Y si tienes dos empleados con diferente id (empleado) pero exactamente el mismo nombre?
En línea

d91

Desconectado Desconectado

Mensajes: 165


Ver Perfil
Re: ayuda con select y group by
« Respuesta #5 en: 12 Noviembre 2015, 13:45 pm »

yo pienso que primera hara la intersección
Código
  1. FROM vendedor P JOIN cat_empleado T
  2.  
  3. ON P.empleado = T.idempleado
  4.  
  5.  
  6.  
En línea

0roch1

Desconectado Desconectado

Mensajes: 123



Ver Perfil
Re: ayuda con select y group by
« Respuesta #6 en: 12 Noviembre 2015, 16:55 pm »

Código
  1. SELECT * FROM cat_empleado;
  2.  
  3. +------------+-----------------+
  4. | idempleado | nombreempleado  |
  5. +------------+-----------------+
  6. |          1 | Juan Perez      |
  7. |          2 | Pilar Alcantara |
  8. |          3 | Juan Perez      |
  9. +------------+-----------------+
  10.  

Código
  1. SELECT * FROM vendedor;
  2.  
  3. +----------+-------+------------+
  4. | empleado | monto | fecha      |
  5. +----------+-------+------------+
  6. |        1 |  12.5 | 2015-11-09 |
  7. |        1 |  15.2 | 2015-11-09 |
  8. |        1 |   2.3 | 2015-11-08 |
  9. |        2 |   5.1 | 2015-11-07 |
  10. |        2 |   4.9 | 2015-11-09 |
  11. |        3 |     3 | 2015-11-09 |
  12. |        3 |     3 | 2015-11-09 |
  13. +----------+-------+------------+
  14.  

La consulta que propongo.
Código
  1. SELECT T.idempleado, T.nombreempleado, SUM(P.monto) AS total FROM vendedor AS P, cat_empleado AS T WHERE P.fecha='09/11/2015'
  2. AND P.empleado=T.idempleado
  3. GROUP BY T.idempleado;
  4.  
  5. +------------+-----------------+-------+
  6. | idempleado | nombreempleado  | total |
  7. +------------+-----------------+-------+
  8. |          1 | Juan Perez      |  27.7 |
  9. |          2 | Pilar Alcantara |   4.9 |
  10. |          3 | Juan Perez      |     6 |
  11. +------------+-----------------+-------+
  12.  

La consulta que propones.
Código
  1. SELECT T.nombreempleado, SUM(P.monto) AS total
  2. FROM vendedor P JOIN cat_empleado T
  3. ON P.empleado = T.idempleado
  4. WHERE P.fecha = '09/11/2015'
  5. GROUP BY T.nombreempleado ORDER BY total DESC;
  6.  
  7. +-----------------+-------+
  8. | nombreempleado  | total |
  9. +-----------------+-------+
  10. | Juan Perez      |  33.7 |
  11. | Pilar Alcantara |   4.9 |
  12. +-----------------+-------+
  13.  

sigue con el error not group by expression

Qué SMBD usas?
En línea

d91

Desconectado Desconectado

Mensajes: 165


Ver Perfil
Re: ayuda con select y group by
« Respuesta #7 en: 18 Noviembre 2015, 16:28 pm »

Oracle 11g
En línea

d91

Desconectado Desconectado

Mensajes: 165


Ver Perfil
Re: ayuda con select y group by
« Respuesta #8 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
Código
  1. SELECT t.id,t.nombre, SUM(p.monto) AS total
  2. FROM vendedor p JOIN empleado t ON p.empleado = t.id
  3. WHERE p.fecha = sysdate
  4. GROUP BY t.id, t.nombre ORDER BY total DESC;
  5.  
En línea

Páginas: [1] Ir Arriba Respuesta Imprimir 

Ir a:  

Mensajes similares
Asunto Iniciado por Respuestas Vistas Último mensaje
SQL - Ayuda con StoreProcedure(SELECT)
Bases de Datos
AlonsoCN 8 6,180 Último mensaje 5 Noviembre 2009, 18:45 pm
por AlonsoCN
Ayuda con el generador para PHP Generator for MySQL de SQL Maestro Group
Ingeniería Inversa
ocastillo 4 7,415 Último mensaje 14 Mayo 2010, 22:36 pm
por ocastillo
Ayuda con SELECT MAX
Bases de Datos
Feedeex 1 3,691 Último mensaje 7 Julio 2011, 23:26 pm
por Nakp
ayuda con select php y javascript
PHP
include (); 4 3,270 Último mensaje 19 Septiembre 2012, 00:14 am
por include ();
Ayuda con Select Case VBS
Scripting
Wartherion 5 3,479 Último mensaje 12 Junio 2015, 11:28 am
por Eleкtro
WAP2 - Aviso Legal - Powered by SMF 1.1.21 | SMF © 2006-2008, Simple Machines