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

group by

Estas en el tema de group by en el foro de Mysql en Foros del Web. Hola a todos les agradeceria la ayuda que me puedan dar con este tema, me veo en la necesidad de realizar una suma de campos ...
  #1 (permalink)  
Antiguo 15/07/2011, 08:45
 
Fecha de Ingreso: julio-2011
Mensajes: 7
Antigüedad: 13 años, 3 meses
Puntos: 0
group by

Hola a todos les agradeceria la ayuda que me puedan dar con este tema, me veo en la necesidad de realizar una suma de campos agrupandolos pero el problema es que el campo que tengo para agrupar es una cadena que contiene 8 digitos de los cuales solo los ultimo cuatro son realmente el criterio de agrupamiento.
ejemplo
horas | codigo_labor
--------------------------
3 | 01010413
---------------------------
4 | 01020413
---------------------------
10 | 01020512
---------------------------
20 | 01020512
----------------------------


es decir en este caso tendria que obtener
horas 7 para codigo_labor que finaliza en 0413
horas 30 para codigo_labor que finaliza en 0512
al momento tengo un codigo que me sirve de poco porque me suma agrupando por codigo_labor
SELECT SUM (horas) as tiempo group by codigo_labor
de antemano gracias por cualquier idea para solucionarlo
  #2 (permalink)  
Antiguo 15/07/2011, 08:49
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, 11 meses
Puntos: 2658
Respuesta: group by

Prueba así:
Código MySQL:
Ver original
  1. SELECT SUM (horas) tiempo, RIGHT(codigo_labor, 4) codigo
  2. FROM tabla
  3. GROUP BY RIGHT(codigo_labor, 4)
__________________
¿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 15/07/2011, 08:53
 
Fecha de Ingreso: julio-2011
Mensajes: 7
Antigüedad: 13 años, 3 meses
Puntos: 0
Respuesta: group by

pues la verdad no conocia la sentencia GROUP BY RIGHT y no la habia encontrado en ningun sitio pero la verdad me vino como anillo al dedo gracias
  #4 (permalink)  
Antiguo 15/07/2011, 09:01
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, 11 meses
Puntos: 2658
Respuesta: group by

No es una sentencia.
RIGHT() es una función de manejo de cadena de caracteres que devuelve los X caracteres desde la derecha de una cadena dada.

Estoy aplicando la función RIGHT() al GROUP BY, como podría haber usado MID(), LEFT(), LENGTH(), o cualquier otra.
__________________
¿A quién le enseñan sus aciertos?, si yo aprendo de mis errores constantemente...
"El problema es la interfase silla-teclado." (Gillermo Luque)

Etiquetas: campos, group, select
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 00:56.