Sangre pura... efectivamente se puede hacer con numtodsinterval
Mira el ejemplo
Código SQL:
Ver originalSQL> CREATE TABLE trabajo(horas NUMBER(2),minutos NUMBER(2),proyecto VARCHAR2(15));
Tabla creada.
SQL> INSERT INTO trabajo (horas, minutos, proyecto)
VALUES (1, 40, 'proyecto_1'); 2
1 fila creada.
SQL> INSERT INTO trabajo (horas, minutos, proyecto)
VALUES (1, 30, 'proyecto_2'); 2
1 fila creada.
SQL> COMMIT;
Confirmación terminada.
SQL> SELECT
NUMTODSINTERVAL(SUM(horas*3600)+SUM(minutos*60),'SECOND') tiempo
FROM trabajo; 2 3
TIEMPO
---------------------------------------------------------------------------
+000000000 03:10:00.000000000
Si quieres darle un poco de formato para eliminar los ceros y los caracteres que no te sirven, puedes utilizar SUBSTR
Código SQL:
Ver originalSQL> SELECT
SUBSTR(NUMTODSINTERVAL(SUM(horas*3600)+SUM(minutos*60),'SECOND'),11,6) tiempo
FROM trabajo; 2 3
TIEMPO
------------------------
03:10
Nos cuentas como te va.
saludos