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

duda sumar el total de una diferencia de minutos

Estas en el tema de duda sumar el total de una diferencia de minutos en el foro de Mysql en Foros del Web. Buenos dias a ver si me doy a entender tengo esta consulta SELECT Num,timestampdiff(Minute,'2011-05-30T10:00:00','2011-05-30T10:15:00') as DifUno, timestampdiff(Minute,'2011-05-30T15:00:00','2011-05-30T14:50:00')as DifDos, timestampdiff(Minute,'2011-05-30T18:00:00','2011-05-30T18:00:00') as DifTres FROM MiTabla where Num ...
  #1 (permalink)  
Antiguo 30/05/2011, 11:03
Avatar de Markgus  
Fecha de Ingreso: junio-2010
Mensajes: 152
Antigüedad: 13 años, 10 meses
Puntos: 5
duda sumar el total de una diferencia de minutos

Buenos dias a ver si me doy a entender tengo esta consulta

SELECT Num,timestampdiff(Minute,'2011-05-30T10:00:00','2011-05-30T10:15:00') as DifUno,
timestampdiff(Minute,'2011-05-30T15:00:00','2011-05-30T14:50:00')as DifDos,
timestampdiff(Minute,'2011-05-30T18:00:00','2011-05-30T18:00:00') as DifTres
FROM MiTabla where Num = 8 and campo_fecha > current_date;

que me envia la diferencia de minutos hasta aquí todo bien
Código:
Num       DifUno         DifDos      DifTres
8        15                -10          0
yo quisiera al final mostrar un campo con el total algo asi

Código:
Num   DifUno          DifDos    DifTres   Total
8         15       -10          0            5
pero si hago esto asi
SELECT Num,timestampdiff(Minute,'2011-05-30T10:00:00','2011-05-30T10:15:00') as DifUno,
timestampdiff(Minute,'2011-05-30T15:00:00','2011-05-30T14:50:00')as DifDos,
timestampdiff(Minute,'2011-05-30T18:00:00','2011-05-30T18:00:00') as DifTres, (DifUno + DifDos + DifTres) as Total
FROM MiTabla where Num = 8 and campo_fecha > current_date;

obvio me marca error porque no tengo los campos en la tabla 'DifUno,DifDos etc..'
hay alguna manera de sacar eso el total de la diferencia??
  #2 (permalink)  
Antiguo 30/05/2011, 11:12
Colaborador
 
Fecha de Ingreso: enero-2007
Ubicación: México
Mensajes: 2.097
Antigüedad: 17 años, 3 meses
Puntos: 447
Respuesta: duda sumar el total de una diferencia de minutos

Hola Markgus:

Puedes hacerlo de dos formas:

Código MySQL:
Ver original
  1. SELECT T.*, DifUno+DifDos+DifTres total FROM
  2. (
  3. Num,
  4. timestampdiff(Minute,'2011-05-30T10:00:00','2011-05-30T10:15:00') DifUno,
  5. timestampdiff(Minute,'2011-05-30T15:00:00','2011-05-30T14:50:00') DifDos,
  6. timestampdiff(Minute,'2011-05-30T18:00:00','2011-05-30T18:00:00') DifTres
  7. FROM MiTabla where Num = 8 and campo_fecha > current_date
  8. ) T
  9.  
  10. Num,
  11. timestampdiff(Minute,'2011-05-30T10:00:00','2011-05-30T10:15:00') DifUno,
  12. timestampdiff(Minute,'2011-05-30T15:00:00','2011-05-30T14:50:00') DifDos,
  13. timestampdiff(Minute,'2011-05-30T18:00:00','2011-05-30T18:00:00') DifTres,
  14. timestampdiff(Minute,'2011-05-30T10:00:00','2011-05-30T10:15:00') +
  15. timestampdiff(Minute,'2011-05-30T15:00:00','2011-05-30T14:50:00') +
  16. timestampdiff(Minute,'2011-05-30T18:00:00','2011-05-30T18:00:00') total
  17. FROM MiTabla where Num = 8 and campo_fecha > current_date

Haz la prueba y nos comentas.

Saludos
Leo.
  #3 (permalink)  
Antiguo 30/05/2011, 11:25
Avatar de Markgus  
Fecha de Ingreso: junio-2010
Mensajes: 152
Antigüedad: 13 años, 10 meses
Puntos: 5
Respuesta: duda sumar el total de una diferencia de minutos

Cita:
Iniciado por leonardo_josue Ver Mensaje
Hola Markgus:

Puedes hacerlo de dos formas:

Código MySQL:
Ver original
  1. SELECT T.*, DifUno+DifDos+DifTres total FROM
  2. (
  3. Num,
  4. timestampdiff(Minute,'2011-05-30T10:00:00','2011-05-30T10:15:00') DifUno,
  5. timestampdiff(Minute,'2011-05-30T15:00:00','2011-05-30T14:50:00') DifDos,
  6. timestampdiff(Minute,'2011-05-30T18:00:00','2011-05-30T18:00:00') DifTres
  7. FROM MiTabla where Num = 8 and campo_fecha > current_date
  8. ) T
  9.  
  10. Num,
  11. timestampdiff(Minute,'2011-05-30T10:00:00','2011-05-30T10:15:00') DifUno,
  12. timestampdiff(Minute,'2011-05-30T15:00:00','2011-05-30T14:50:00') DifDos,
  13. timestampdiff(Minute,'2011-05-30T18:00:00','2011-05-30T18:00:00') DifTres,
  14. timestampdiff(Minute,'2011-05-30T10:00:00','2011-05-30T10:15:00') +
  15. timestampdiff(Minute,'2011-05-30T15:00:00','2011-05-30T14:50:00') +
  16. timestampdiff(Minute,'2011-05-30T18:00:00','2011-05-30T18:00:00') total
  17. FROM MiTabla where Num = 8 and campo_fecha > current_date

Haz la prueba y nos comentas.

Saludos
Leo.
:O maestro las 2 consultas funcionaron muy bien aunque tengo duda en la 1era como funciona T.* ?
aa ya es el alias de la subconsulta verdad? bueno segun por el msj que me mando el msyql browser

Última edición por Markgus; 30/05/2011 a las 11:39
  #4 (permalink)  
Antiguo 30/05/2011, 13:10
Colaborador
 
Fecha de Ingreso: enero-2007
Ubicación: México
Mensajes: 2.097
Antigüedad: 17 años, 3 meses
Puntos: 447
Respuesta: duda sumar el total de una diferencia de minutos

Cita:
Iniciado por Markgus Ver Mensaje
:O maestro las 2 consultas funcionaron muy bien aunque tengo duda en la 1era como funciona T.* ?
aa ya es el alias de la subconsulta verdad? bueno segun por el msj que me mando el msyql browser
Estás en lo correcto, T es el alias que utilizo en la subconsulta al poner .* estoy indicando que recupere todos los campos que regresa la subconsulta, lo que sería lo mismo a poner

SELECT DifUno, DifDos, DifTres, DifUno+DifDos+DifTres total FROM
(
...
) T

Saludos
Leo.
  #5 (permalink)  
Antiguo 19/07/2011, 07:57
Avatar de Markgus  
Fecha de Ingreso: junio-2010
Mensajes: 152
Antigüedad: 13 años, 10 meses
Puntos: 5
Respuesta: duda sumar el total de una diferencia de minutos

Hola disculpa que regrese, tengo una duda, cuando no hay registros tengo por default que se me ponga cero, pero en la suma me los toma como NULL y ya el total no se realiza recién estoy viendo que existe una funcion ifnull, la podría acomodar aquí y como seria? por que no logro me marca errores de sintaxis

disculpa ya salio es algo asi

Código MySQL:
Ver original
  1. SELECT T.*, DifUno+DifDos total FROM
  2. (
  3. Num,
  4. ifnull (TIMESTAMPDIFF(MINUTE,'2011-05-30T10:00:00','2011-05-30T10:15:00'),0 )DifUno,
  5. ifnull (TIMESTAMPDIFF(MINUTE,'2011-05-30T15:00:00','2011-05-30T14:50:00'),0) DifDos,
  6.  
  7. FROM MiTabla WHERE Num = 8 AND campo_fecha > CURRENT_DATE
  8. ) ;

Última edición por Markgus; 19/07/2011 a las 08:04 Razón: encontré la solución

Etiquetas: diferencia, minutos, totales
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 23:05.