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

Sumar resultados constulta múltiple

Estas en el tema de Sumar resultados constulta múltiple en el foro de Mysql en Foros del Web. Hola, Alguien puede ayudarme como hacer para obtener la suma de los alias dif y dif2 . La tabla 'desde' es inicio de jornada diaria ...
  #1 (permalink)  
Antiguo 12/01/2012, 02:27
 
Fecha de Ingreso: enero-2008
Mensajes: 303
Antigüedad: 16 años, 3 meses
Puntos: 0
Sumar resultados constulta múltiple

Hola,
Alguien puede ayudarme como hacer para obtener la suma de los alias dif y dif2 .

La tabla 'desde' es inicio de jornada diaria del turno 1 y desde1 el turno 2
La tabla' hasta' es el final de jornada del truno 1 y hasta1 el del turno 2..
dif y dif 2 es la diferencia en horas de ambas, y necesito reflejar la suma diaria de ambos.

Código PHP:
SELECT

 GROUP_CONCAT
(ROUND((TIMESTAMPDIFF(SECOND,desde,hasta) /3600),1),'<br/>'ORDER BY desde ASC SEPARATOR ''dif,
 
GROUP_CONCAT(ROUND((TIMESTAMPDIFF(SECOND,desde1,hasta1) /3600),1),'<br/>'ORDER BY desde1 ASC SEPARATOR '')dif2
 FROM horas INNER JOIN personal ON 
(horas.idempleado personal.id )GROUP BY idempleado 
  #2 (permalink)  
Antiguo 12/01/2012, 02:38
Colaborador
 
Fecha de Ingreso: marzo-2008
Ubicación: Sabadell
Mensajes: 4.897
Antigüedad: 16 años, 1 mes
Puntos: 574
Respuesta: Sumar resultados constulta múltiple

Si muestras la estructura de tus tablas seguro que se puede encontrar una mejor solucion... sobre todo mas SQL estandar.

Y que de todos los resultados que buscas....

horas

CREATE TABLE horas....

personal

desde

desde1

hasta

hasta1
__________________
Quim
--------------------------------------------------
Ayudar a ayudar es una buena práctica!!! Y da buenos resultados.
  #3 (permalink)  
Antiguo 12/01/2012, 02:54
 
Fecha de Ingreso: enero-2008
Mensajes: 303
Antigüedad: 16 años, 3 meses
Puntos: 0
Respuesta: Sumar resultados constulta múltiple

gracias, ahí va.
CREATE TABLE IF NOT EXISTS `horas` (
`id` int(5) NOT NULL AUTO_INCREMENT,
`idempleado` int(5) NOT NULL,
`fecha` date DEFAULT NULL,
`desde` datetime DEFAULT NULL,
`hasta` datetime DEFAULT NULL,
`desde1` datetime DEFAULT NULL,
`hasta1` datetime DEFAULT NULL,
PRIMARY KEY (`id`)
) ENGINE=MyISAM DEFAULT CHARSET=utf8 AUTO_INCREMENT=1
  #4 (permalink)  
Antiguo 12/01/2012, 03:32
Colaborador
 
Fecha de Ingreso: marzo-2008
Ubicación: Sabadell
Mensajes: 4.897
Antigüedad: 16 años, 1 mes
Puntos: 574
Respuesta: Sumar resultados constulta múltiple

De todas....

Cita:
La tabla 'desde' es inicio de jornada diaria del turno 1 y desde1 el turno 2
La tabla' hasta' es el final de jornada del truno 1 y hasta1 el del turno 2..
tablas o campos...
__________________
Quim
--------------------------------------------------
Ayudar a ayudar es una buena práctica!!! Y da buenos resultados.

Última edición por quimfv; 12/01/2012 a las 03:59
  #5 (permalink)  
Antiguo 12/01/2012, 03:57
 
Fecha de Ingreso: enero-2008
Mensajes: 303
Antigüedad: 16 años, 3 meses
Puntos: 0
Respuesta: Sumar resultados constulta múltiple

Esta la uso solo para obtener el nombre.
Gracias,
CREATE TABLE IF NOT EXISTS `personal` (
`id` int(5) NOT NULL AUTO_INCREMENT,
`nombre` varchar(100) NOT NULL,
`sueldobase` int(5) DEFAULT '0',
`extras` int(5) DEFAULT '0',
`anticipo` int(5) DEFAULT '0',
`sueldo` int(5) DEFAULT '0',
`jornada` int(2) DEFAULT '0',
`tipojornada` int(1) DEFAULT '0',
PRIMARY KEY (`id`)
) ENGINE=MyISAM DEFAULT CHARSET=utf8 AUTO_INCREMENT=80 ;
  #6 (permalink)  
Antiguo 12/01/2012, 03:59
 
Fecha de Ingreso: enero-2008
Mensajes: 303
Antigüedad: 16 años, 3 meses
Puntos: 0
Respuesta: Sumar resultados constulta múltiple

HOLA DE NUEVO,
Haciendo pruebas, he visto que el probelma radica en el separador </br> "solo da problemas en el total, no en los parciales.
Si lo quito me dá todos los resultados en una sola linea.
Un saludo
  #7 (permalink)  
Antiguo 12/01/2012, 04:02
Colaborador
 
Fecha de Ingreso: marzo-2008
Ubicación: Sabadell
Mensajes: 4.897
Antigüedad: 16 años, 1 mes
Puntos: 574
Respuesta: Sumar resultados constulta múltiple

Código MySQL:
Ver original
  1. SELECT idempleado,
  2.              SUM(ROUND((TIMESTAMPDIFF(SECOND,desde,hasta) /3600),1)) dif,
  3. SUM(ROUND((TIMESTAMPDIFF(SECOND,desde1,hasta1) /3600),1)) dif2
  4. SUM(ROUND((TIMESTAMPDIFF(SECOND,desde,hasta) /3600),1)+ROUND((TIMESTAMPDIFF(SECOND,desde1,hasta1) /3600),1)) sumadedifdif2
  5.  FROM horas
  6.          INNER
  7.          JOIN personal
  8.     ON (horas.idempleado = personal.id )
  9.  GROUP BY idempleado

No?...
__________________
Quim
--------------------------------------------------
Ayudar a ayudar es una buena práctica!!! Y da buenos resultados.
  #8 (permalink)  
Antiguo 12/01/2012, 04:04
Colaborador
 
Fecha de Ingreso: marzo-2008
Ubicación: Sabadell
Mensajes: 4.897
Antigüedad: 16 años, 1 mes
Puntos: 574
Respuesta: Sumar resultados constulta múltiple

Si claro <br /> es un salto de linea....
__________________
Quim
--------------------------------------------------
Ayudar a ayudar es una buena práctica!!! Y da buenos resultados.
  #9 (permalink)  
Antiguo 12/01/2012, 05:16
 
Fecha de Ingreso: enero-2008
Mensajes: 303
Antigüedad: 16 años, 3 meses
Puntos: 0
Respuesta: Sumar resultados constulta múltiple

Muchas gracias,, efectivamene así recoge el total de horas ascumuladas de un idempleado.
Pero no consigo obtener el dif+dif2 día a día.
Un saludo
  #10 (permalink)  
Antiguo 13/01/2012, 02:08
Colaborador
 
Fecha de Ingreso: marzo-2008
Ubicación: Sabadell
Mensajes: 4.897
Antigüedad: 16 años, 1 mes
Puntos: 574
Respuesta: Sumar resultados constulta múltiple

Código MySQL:
Ver original
  1. SELECT idempleado,fecha
  2.              SUM(ROUND((TIMESTAMPDIFF(SECOND,desde,hasta) /3600),1)) dif,
  3. SUM(ROUND((TIMESTAMPDIFF(SECOND,desde1,hasta1) /3600),1)) dif2
  4. SUM(ROUND((TIMESTAMPDIFF(SECOND,desde,hasta) /3600),1)+ROUND((TIMESTAMPDIFF(SECOND,desde1,hasta1) /3600),1)) sumadedifdif2
  5.  FROM horas
  6.          INNER
  7.          JOIN personal
  8.     ON (horas.idempleado = personal.id )
  9.  GROUP BY idempleado,fecha

Esto te lo dará por idempleado y dia...

o sin el sum ni el group by si cada empleado tiene una sola entrada por dia....
__________________
Quim
--------------------------------------------------
Ayudar a ayudar es una buena práctica!!! Y da buenos resultados.

Última edición por quimfv; 13/01/2012 a las 05:59

Etiquetas: join, múltiple, resultados, select, tabla
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 15:19.