Ver Mensaje Individual
  #1  
Antiguo 20-01-2022
Avatar de Angel.Matilla
Angel.Matilla Angel.Matilla is offline
Miembro
 
Registrado: ene 2007
Posts: 1.350
Reputación: 19
Angel.Matilla Va por buen camino
Sumar tiempos

Buenas tardes. A ver si me sé explicar. Tengo esta tabla en FB 2.5:
Código SQL [-]
CREATE TABLE PISTAS (
  DISCO INTEGER NOT NULL,
  ORDEN_DISCO SMALLINT NOT NULL,
  ORDEN_PISTA SMALLINT NOT NULL,
  CANCION CHAR(255),
  INTERPRETE CHAR(60),
  TIEMPO TIME);
Creo que es bastante evidente que se trata de una BB.DD. de discos. Necesito hacer un query que me sume la duración de las pistas; algo así:
Código SQL [-]
SELECT Disco, SUM(Tiempo) FROM Pistas GROUP BY Disco ORDER BY Disco
Pero al porbar en SQL Manager me da este error:
Cita:
Unsuccessful execution caused by a system error that precludes successful execution of subsequent statements.
Dynamic SQL Error.
Expression evaluation not supported.
Argument for SUM in dialect 3 must be numeric.
¿Cómo podría hacer ese tipo de query? ¿Bastaría con cambiar el dialecto de la BB.DD. al hacer la suma?
Ya sé que podría sacar los tres datos (hora, minutos y segundos) por separado:
Código SQL [-]
SELECT Disco, SUM(EXTRACT(HOUR FROM Tiempo)) Hora, SUM(EXTRACT(MINUTE FROM Tiempo)) Minuto, SUM(EXTRACT(SECOND FROM Tiempo)) Segundo
  FROM Pistas
 GROUP BY Disco
 ORDER BY Disco
pero al hacer luego un EncodeTime es muy fácil que dé error porque, por ejemplo, una de las sumas saldría algo así:
Cita:
Disco: 9
Hora: 0
Minuto: 38
Segundo: 711
Responder Con Cita