3 Replies Latest reply on Nov 11, 2019 1:32 PM by J.Laurindo Chiappa

    Contabilizar horas em dias diferentes

    The And

      Prezada comunidade

       

      Tenho que demonstrar graficamente a quantidade de horas disponíveis no mês, entre duas datas/horas.
      Por exemplo:
      inicio - 7/10/19 20:06

      fim - 9/10/19 0:39

       

      Preciso dizer que as 00h ele ficou disponível 1:39
                ou seja dia 7 as 00h não estava disponível

                            dia 8 as 00H ficou disponível 1h

                            dia 9 as 00H ficou disponível 0:39m

      Preciso dizer que as 01h ele ficou disponível 1:00
                ou seja dia 7 as 01h não estava disponível

                            dia 8 as 01H ficou disponível 1h

                            dia 9 as 01H não estava disponível

      Assim por diante, conforme a linha verde abaixo.

       

      Existe uma maneira de fazer um sql que contabilize esses tempos?
      PS.: Tentei com case when, porém seria necessário fazer um para cada dia / hora. Ficaria muito extenso.

        • 1. Re: Contabilizar horas em dias diferentes
          J.Laurindo Chiappa

          Beleza ? Pra gente poder te ajudar, PLEASE manda um CREATE TABLE ** E ** uns INSERTs , pra gente poder Reproduzir a sua situação : pelo que eu DEDUZI vc vai ter uma coluna tipo DATE (que no Oracle aceita data E hora) indicando a data/hora em que começou a ficar no status de Ocupado E uma outra coluna indicando quando terminou de ficar Ocupado, E os períodos outros afora esse deme ser considerados Livres....

          Com dados e estrutura de tabela na mão, deveremos ser capazes de fazer algo tipo https://stackoverflow.com/questions/1096853/calculate-difference-between-2-date-times-in-oracle-sql

          • 2. Re: Contabilizar horas em dias diferentes
            The And

            Não é uma simples diferença entre datas isso já está calculado na coluna "G".

             

             

             

            CREATE TABLE LEITOS

            (

              SITU_SQ            NUMBER                     NOT NULL,

              SITU_LEIT_NR       VARCHAR2(8 BYTE)           NOT NULL,

              SITU_SITUACAO      VARCHAR2(3 BYTE)           NOT NULL,

              SITU_DT_HR_INICIO  DATE                       NOT NULL,

              SITU_DT_HR_FIM     DATE

            );

            Insert into LEITOS

               (SITU_SQ, SITU_LEIT_NR, SITU_SITUACAO, SITU_DT_HR_INICIO, SITU_DT_HR_FIM)

            Values

               (1412080, '4000', 'LIB', TO_DATE('04/11/2019 18:50:00', 'DD/MM/YYYY HH24:MI:SS'), TO_DATE('04/11/2019 20:32:00', 'DD/MM/YYYY HH24:MI:SS'));

            Insert into LEITOS

               (SITU_SQ, SITU_LEIT_NR, SITU_SITUACAO, SITU_DT_HR_INICIO, SITU_DT_HR_FIM)

            Values

               (1412129, '4000', 'OCU', TO_DATE('04/11/2019 20:33:00', 'DD/MM/YYYY HH24:MI:SS'), TO_DATE('07/11/2019 10:14:00', 'DD/MM/YYYY HH24:MI:SS'));

            Insert into LEITOS

               (SITU_SQ, SITU_LEIT_NR, SITU_SITUACAO, SITU_DT_HR_INICIO, SITU_DT_HR_FIM)

            Values

               (1412786, '4000', 'LIB', TO_DATE('07/11/2019 10:14:00', 'DD/MM/YYYY HH24:MI:SS'), TO_DATE('07/11/2019 10:14:00', 'DD/MM/YYYY HH24:MI:SS'));

            Insert into LEITOS

               (SITU_SQ, SITU_LEIT_NR, SITU_SITUACAO, SITU_DT_HR_INICIO, SITU_DT_HR_FIM)

            Values

               (1412787, '4000', 'OCU', TO_DATE('07/11/2019 10:15:00', 'DD/MM/YYYY HH24:MI:SS'), TO_DATE('08/11/2019 20:48:00', 'DD/MM/YYYY HH24:MI:SS'));

            Insert into LEITOS

               (SITU_SQ, SITU_LEIT_NR, SITU_SITUACAO, SITU_DT_HR_INICIO, SITU_DT_HR_FIM)

            Values

               (1413316, '4000', 'LIB', TO_DATE('08/11/2019 20:48:00', 'DD/MM/YYYY HH24:MI:SS'), NULL);

            Insert into LEITOS

               (SITU_SQ, SITU_LEIT_NR, SITU_SITUACAO, SITU_DT_HR_INICIO, SITU_DT_HR_FIM)

            Values

               (1411822, '4006', 'LIB', TO_DATE('03/11/2019 18:52:00', 'DD/MM/YYYY HH24:MI:SS'), TO_DATE('03/11/2019 20:30:00', 'DD/MM/YYYY HH24:MI:SS'));

            Insert into LEITOS

               (SITU_SQ, SITU_LEIT_NR, SITU_SITUACAO, SITU_DT_HR_INICIO, SITU_DT_HR_FIM)

            Values

               (1411829, '4006', 'OCU', TO_DATE('03/11/2019 20:31:00', 'DD/MM/YYYY HH24:MI:SS'), TO_DATE('04/11/2019 16:42:00', 'DD/MM/YYYY HH24:MI:SS'));

            Insert into LEITOS

               (SITU_SQ, SITU_LEIT_NR, SITU_SITUACAO, SITU_DT_HR_INICIO, SITU_DT_HR_FIM)

            Values

               (1412027, '4006', 'LIB', TO_DATE('04/11/2019 16:42:00', 'DD/MM/YYYY HH24:MI:SS'), TO_DATE('04/11/2019 19:55:00', 'DD/MM/YYYY HH24:MI:SS'));

            Insert into LEITOS

               (SITU_SQ, SITU_LEIT_NR, SITU_SITUACAO, SITU_DT_HR_INICIO, SITU_DT_HR_FIM)

            Values

               (1412119, '4006', 'OCU', TO_DATE('04/11/2019 19:56:00', 'DD/MM/YYYY HH24:MI:SS'), TO_DATE('08/11/2019 12:12:00', 'DD/MM/YYYY HH24:MI:SS'));

            Insert into LEITOS

               (SITU_SQ, SITU_LEIT_NR, SITU_SITUACAO, SITU_DT_HR_INICIO, SITU_DT_HR_FIM)

            Values

               (1413119, '4006', 'LIB', TO_DATE('08/11/2019 12:12:00', 'DD/MM/YYYY HH24:MI:SS'), TO_DATE('08/11/2019 12:13:00', 'DD/MM/YYYY HH24:MI:SS'));

            Insert into LEITOS

               (SITU_SQ, SITU_LEIT_NR, SITU_SITUACAO, SITU_DT_HR_INICIO, SITU_DT_HR_FIM)

            Values

               (1413121, '4006', 'OCU', TO_DATE('08/11/2019 12:14:00', 'DD/MM/YYYY HH24:MI:SS'), NULL);

            Insert into LEITOS

               (SITU_SQ, SITU_LEIT_NR, SITU_SITUACAO, SITU_DT_HR_INICIO, SITU_DT_HR_FIM)

            Values

               (1413120, '4008', 'LIB', TO_DATE('08/11/2019 12:13:00', 'DD/MM/YYYY HH24:MI:SS'), TO_DATE('08/11/2019 20:48:00', 'DD/MM/YYYY HH24:MI:SS'));

            Insert into LEITOS

               (SITU_SQ, SITU_LEIT_NR, SITU_SITUACAO, SITU_DT_HR_INICIO, SITU_DT_HR_FIM)

            Values

               (1413317, '4008', 'OCU', TO_DATE('08/11/2019 20:49:00', 'DD/MM/YYYY HH24:MI:SS'), NULL);

            Insert into LEITOS

               (SITU_SQ, SITU_LEIT_NR, SITU_SITUACAO, SITU_DT_HR_INICIO, SITU_DT_HR_FIM)

            Values

               (1411854, '4010', 'LIB', TO_DATE('03/11/2019 23:32:00', 'DD/MM/YYYY HH24:MI:SS'), TO_DATE('04/11/2019 03:40:00', 'DD/MM/YYYY HH24:MI:SS'));

            Insert into LEITOS

               (SITU_SQ, SITU_LEIT_NR, SITU_SITUACAO, SITU_DT_HR_INICIO, SITU_DT_HR_FIM)

            Values

               (1411856, '4010', 'OCU', TO_DATE('04/11/2019 03:41:00', 'DD/MM/YYYY HH24:MI:SS'), NULL);

            Insert into LEITOS

               (SITU_SQ, SITU_LEIT_NR, SITU_SITUACAO, SITU_DT_HR_INICIO, SITU_DT_HR_FIM)

            Values

               (1412091, '4012', 'LIB', TO_DATE('04/11/2019 19:16:00', 'DD/MM/YYYY HH24:MI:SS'), TO_DATE('04/11/2019 20:08:00', 'DD/MM/YYYY HH24:MI:SS'));

            Insert into LEITOS

               (SITU_SQ, SITU_LEIT_NR, SITU_SITUACAO, SITU_DT_HR_INICIO, SITU_DT_HR_FIM)

            Values

               (1412123, '4012', 'OCU', TO_DATE('04/11/2019 20:09:00', 'DD/MM/YYYY HH24:MI:SS'), TO_DATE('08/11/2019 11:47:00', 'DD/MM/YYYY HH24:MI:SS'));

            Insert into LEITOS

               (SITU_SQ, SITU_LEIT_NR, SITU_SITUACAO, SITU_DT_HR_INICIO, SITU_DT_HR_FIM)

            Values

               (1413112, '4012', 'LIB', TO_DATE('08/11/2019 11:47:00', 'DD/MM/YYYY HH24:MI:SS'), TO_DATE('08/11/2019 15:20:00', 'DD/MM/YYYY HH24:MI:SS'));

            Insert into LEITOS

               (SITU_SQ, SITU_LEIT_NR, SITU_SITUACAO, SITU_DT_HR_INICIO, SITU_DT_HR_FIM)

            Values

               (1413186, '4012', 'OCU', TO_DATE('08/11/2019 15:21:00', 'DD/MM/YYYY HH24:MI:SS'), NULL);

            Insert into LEITOS

               (SITU_SQ, SITU_LEIT_NR, SITU_SITUACAO, SITU_DT_HR_INICIO, SITU_DT_HR_FIM)

            Values

               (1412159, '4016', 'LIB', TO_DATE('04/11/2019 22:27:00', 'DD/MM/YYYY HH24:MI:SS'), TO_DATE('05/11/2019 13:17:00', 'DD/MM/YYYY HH24:MI:SS'));

            Insert into LEITOS

               (SITU_SQ, SITU_LEIT_NR, SITU_SITUACAO, SITU_DT_HR_INICIO, SITU_DT_HR_FIM)

            Values

               (1412290, '4016', 'OCU', TO_DATE('05/11/2019 13:18:00', 'DD/MM/YYYY HH24:MI:SS'), NULL);

            Insert into LEITOS

               (SITU_SQ, SITU_LEIT_NR, SITU_SITUACAO, SITU_DT_HR_INICIO, SITU_DT_HR_FIM)

            Values

               (1412420, '4018', 'LIB', TO_DATE('05/11/2019 21:02:00', 'DD/MM/YYYY HH24:MI:SS'), TO_DATE('05/11/2019 22:26:00', 'DD/MM/YYYY HH24:MI:SS'));

            Insert into LEITOS

               (SITU_SQ, SITU_LEIT_NR, SITU_SITUACAO, SITU_DT_HR_INICIO, SITU_DT_HR_FIM)

            Values

               (1412432, '4018', 'OCU', TO_DATE('05/11/2019 22:27:00', 'DD/MM/YYYY HH24:MI:SS'), TO_DATE('06/11/2019 18:20:00', 'DD/MM/YYYY HH24:MI:SS'));

            Insert into LEITOS

               (SITU_SQ, SITU_LEIT_NR, SITU_SITUACAO, SITU_DT_HR_INICIO, SITU_DT_HR_FIM)

            Values

               (1412666, '4018', 'LIB', TO_DATE('06/11/2019 18:20:00', 'DD/MM/YYYY HH24:MI:SS'), TO_DATE('07/11/2019 14:18:00', 'DD/MM/YYYY HH24:MI:SS'));

            Insert into LEITOS

               (SITU_SQ, SITU_LEIT_NR, SITU_SITUACAO, SITU_DT_HR_INICIO, SITU_DT_HR_FIM)

            Values

               (1412865, '4018', 'OCU', TO_DATE('07/11/2019 14:19:00', 'DD/MM/YYYY HH24:MI:SS'), NULL);

            Insert into LEITOS

               (SITU_SQ, SITU_LEIT_NR, SITU_SITUACAO, SITU_DT_HR_INICIO, SITU_DT_HR_FIM)

            Values

               (1412604, '4020', 'LIB', TO_DATE('06/11/2019 16:00:00', 'DD/MM/YYYY HH24:MI:SS'), TO_DATE('06/11/2019 20:31:00', 'DD/MM/YYYY HH24:MI:SS'));

            Insert into LEITOS

               (SITU_SQ, SITU_LEIT_NR, SITU_SITUACAO, SITU_DT_HR_INICIO, SITU_DT_HR_FIM)

            Values

               (1412711, '4020', 'OCU', TO_DATE('06/11/2019 20:32:00', 'DD/MM/YYYY HH24:MI:SS'), NULL);

            Insert into LEITOS

               (SITU_SQ, SITU_LEIT_NR, SITU_SITUACAO, SITU_DT_HR_INICIO, SITU_DT_HR_FIM)

            Values

               (1411938, '4022', 'LIB', TO_DATE('04/11/2019 12:15:00', 'DD/MM/YYYY HH24:MI:SS'), TO_DATE('04/11/2019 14:25:00', 'DD/MM/YYYY HH24:MI:SS'));

            Insert into LEITOS

               (SITU_SQ, SITU_LEIT_NR, SITU_SITUACAO, SITU_DT_HR_INICIO, SITU_DT_HR_FIM)

            Values

               (1411974, '4022', 'OCU', TO_DATE('04/11/2019 14:26:00', 'DD/MM/YYYY HH24:MI:SS'), TO_DATE('05/11/2019 22:28:00', 'DD/MM/YYYY HH24:MI:SS'));

            Insert into LEITOS

               (SITU_SQ, SITU_LEIT_NR, SITU_SITUACAO, SITU_DT_HR_INICIO, SITU_DT_HR_FIM)

            Values

               (1412433, '4022', 'LIB', TO_DATE('05/11/2019 22:28:00', 'DD/MM/YYYY HH24:MI:SS'), TO_DATE('06/11/2019 18:40:00', 'DD/MM/YYYY HH24:MI:SS'));

            Insert into LEITOS

               (SITU_SQ, SITU_LEIT_NR, SITU_SITUACAO, SITU_DT_HR_INICIO, SITU_DT_HR_FIM)

            Values

               (1412665, '4022', 'OCU', TO_DATE('06/11/2019 18:41:00', 'DD/MM/YYYY HH24:MI:SS'), TO_DATE('07/11/2019 11:24:00', 'DD/MM/YYYY HH24:MI:SS'));

            Insert into LEITOS

               (SITU_SQ, SITU_LEIT_NR, SITU_SITUACAO, SITU_DT_HR_INICIO, SITU_DT_HR_FIM)

            Values

               (1412800, '4022', 'LIB', TO_DATE('07/11/2019 11:24:00', 'DD/MM/YYYY HH24:MI:SS'), TO_DATE('07/11/2019 17:47:00', 'DD/MM/YYYY HH24:MI:SS'));

            Insert into LEITOS

               (SITU_SQ, SITU_LEIT_NR, SITU_SITUACAO, SITU_DT_HR_INICIO, SITU_DT_HR_FIM)

            Values

               (1412963, '4022', 'OCU', TO_DATE('07/11/2019 17:48:00', 'DD/MM/YYYY HH24:MI:SS'), NULL);

            Insert into LEITOS

               (SITU_SQ, SITU_LEIT_NR, SITU_SITUACAO, SITU_DT_HR_INICIO, SITU_DT_HR_FIM)

            Values

               (1412454, '4026', 'LIB', TO_DATE('06/11/2019 06:55:00', 'DD/MM/YYYY HH24:MI:SS'), TO_DATE('06/11/2019 12:05:00', 'DD/MM/YYYY HH24:MI:SS'));

            Insert into LEITOS

               (SITU_SQ, SITU_LEIT_NR, SITU_SITUACAO, SITU_DT_HR_INICIO, SITU_DT_HR_FIM)

            Values

               (1412513, '4026', 'OCU', TO_DATE('06/11/2019 12:06:00', 'DD/MM/YYYY HH24:MI:SS'), TO_DATE('07/11/2019 14:18:00', 'DD/MM/YYYY HH24:MI:SS'));

            Insert into LEITOS

               (SITU_SQ, SITU_LEIT_NR, SITU_SITUACAO, SITU_DT_HR_INICIO, SITU_DT_HR_FIM)

            Values

               (1412864, '4026', 'LIB', TO_DATE('07/11/2019 14:18:00', 'DD/MM/YYYY HH24:MI:SS'), TO_DATE('07/11/2019 18:45:00', 'DD/MM/YYYY HH24:MI:SS'));

            Insert into LEITOS

               (SITU_SQ, SITU_LEIT_NR, SITU_SITUACAO, SITU_DT_HR_INICIO, SITU_DT_HR_FIM)

            Values

               (1412981, '4026', 'OCU', TO_DATE('07/11/2019 18:46:00', 'DD/MM/YYYY HH24:MI:SS'), TO_DATE('08/11/2019 12:47:00', 'DD/MM/YYYY HH24:MI:SS'));

            Insert into LEITOS

               (SITU_SQ, SITU_LEIT_NR, SITU_SITUACAO, SITU_DT_HR_INICIO, SITU_DT_HR_FIM)

            Values

               (1413126, '4026', 'LIB', TO_DATE('08/11/2019 12:47:00', 'DD/MM/YYYY HH24:MI:SS'), TO_DATE('08/11/2019 23:46:00', 'DD/MM/YYYY HH24:MI:SS'));

            Insert into LEITOS

               (SITU_SQ, SITU_LEIT_NR, SITU_SITUACAO, SITU_DT_HR_INICIO, SITU_DT_HR_FIM)

            Values

               (1413359, '4026', 'OCU', TO_DATE('08/11/2019 23:47:00', 'DD/MM/YYYY HH24:MI:SS'), NULL);

            Insert into LEITOS

               (SITU_SQ, SITU_LEIT_NR, SITU_SITUACAO, SITU_DT_HR_INICIO, SITU_DT_HR_FIM)

            Values

               (1412296, '4028', 'LIB', TO_DATE('05/11/2019 13:34:00', 'DD/MM/YYYY HH24:MI:SS'), TO_DATE('05/11/2019 16:51:00', 'DD/MM/YYYY HH24:MI:SS'));

            Insert into LEITOS

               (SITU_SQ, SITU_LEIT_NR, SITU_SITUACAO, SITU_DT_HR_INICIO, SITU_DT_HR_FIM)

            Values

               (1412359, '4028', 'OCU', TO_DATE('05/11/2019 16:52:00', 'DD/MM/YYYY HH24:MI:SS'), TO_DATE('06/11/2019 12:04:00', 'DD/MM/YYYY HH24:MI:SS'));

            Insert into LEITOS

               (SITU_SQ, SITU_LEIT_NR, SITU_SITUACAO, SITU_DT_HR_INICIO, SITU_DT_HR_FIM)

            Values

               (1412509, '4028', 'LIB', TO_DATE('06/11/2019 12:04:00', 'DD/MM/YYYY HH24:MI:SS'), TO_DATE('06/11/2019 20:23:00', 'DD/MM/YYYY HH24:MI:SS'));

            Insert into LEITOS

               (SITU_SQ, SITU_LEIT_NR, SITU_SITUACAO, SITU_DT_HR_INICIO, SITU_DT_HR_FIM)

            Values

               (1412708, '4028', 'OCU', TO_DATE('06/11/2019 20:24:00', 'DD/MM/YYYY HH24:MI:SS'), TO_DATE('08/11/2019 17:47:00', 'DD/MM/YYYY HH24:MI:SS'));

            Insert into LEITOS

               (SITU_SQ, SITU_LEIT_NR, SITU_SITUACAO, SITU_DT_HR_INICIO, SITU_DT_HR_FIM)

            Values

               (1413255, '4028', 'LIB', TO_DATE('08/11/2019 17:47:00', 'DD/MM/YYYY HH24:MI:SS'), NULL);

            Insert into LEITOS

               (SITU_SQ, SITU_LEIT_NR, SITU_SITUACAO, SITU_DT_HR_INICIO, SITU_DT_HR_FIM)

            Values

               (1412630, '4030', 'LIB', TO_DATE('06/11/2019 17:00:00', 'DD/MM/YYYY HH24:MI:SS'), TO_DATE('07/11/2019 00:44:00', 'DD/MM/YYYY HH24:MI:SS'));

            Insert into LEITOS

               (SITU_SQ, SITU_LEIT_NR, SITU_SITUACAO, SITU_DT_HR_INICIO, SITU_DT_HR_FIM)

            Values

               (1412751, '4030', 'OCU', TO_DATE('07/11/2019 00:45:00', 'DD/MM/YYYY HH24:MI:SS'), NULL);

            Insert into LEITOS

               (SITU_SQ, SITU_LEIT_NR, SITU_SITUACAO, SITU_DT_HR_INICIO, SITU_DT_HR_FIM)

            Values

               (1411734, '4032', 'OCU', TO_DATE('02/11/2019 16:20:00', 'DD/MM/YYYY HH24:MI:SS'), TO_DATE('07/11/2019 18:27:00', 'DD/MM/YYYY HH24:MI:SS'));

            Insert into LEITOS

               (SITU_SQ, SITU_LEIT_NR, SITU_SITUACAO, SITU_DT_HR_INICIO, SITU_DT_HR_FIM)

            Values

               (1412969, '4032', 'LIB', TO_DATE('07/11/2019 18:27:00', 'DD/MM/YYYY HH24:MI:SS'), TO_DATE('08/11/2019 04:31:00', 'DD/MM/YYYY HH24:MI:SS'));

            Insert into LEITOS

               (SITU_SQ, SITU_LEIT_NR, SITU_SITUACAO, SITU_DT_HR_INICIO, SITU_DT_HR_FIM)

            Values

               (1413061, '4032', 'OCU', TO_DATE('08/11/2019 04:32:00', 'DD/MM/YYYY HH24:MI:SS'), NULL);

            Insert into LEITOS

               (SITU_SQ, SITU_LEIT_NR, SITU_SITUACAO, SITU_DT_HR_INICIO, SITU_DT_HR_FIM)

            Values

               (1411690, '4034', 'OCU', TO_DATE('02/11/2019 00:26:00', 'DD/MM/YYYY HH24:MI:SS'), TO_DATE('06/11/2019 20:37:00', 'DD/MM/YYYY HH24:MI:SS'));

            Insert into LEITOS

               (SITU_SQ, SITU_LEIT_NR, SITU_SITUACAO, SITU_DT_HR_INICIO, SITU_DT_HR_FIM)

            Values

               (1412712, '4034', 'LIB', TO_DATE('06/11/2019 20:37:00', 'DD/MM/YYYY HH24:MI:SS'), TO_DATE('06/11/2019 23:37:00', 'DD/MM/YYYY HH24:MI:SS'));

            Insert into LEITOS

               (SITU_SQ, SITU_LEIT_NR, SITU_SITUACAO, SITU_DT_HR_INICIO, SITU_DT_HR_FIM)

            Values

               (1412744, '4034', 'OCU', TO_DATE('06/11/2019 23:38:00', 'DD/MM/YYYY HH24:MI:SS'), NULL);

            Insert into LEITOS

               (SITU_SQ, SITU_LEIT_NR, SITU_SITUACAO, SITU_DT_HR_INICIO, SITU_DT_HR_FIM)

            Values

               (1411870, '4105', 'LIB', TO_DATE('04/11/2019 07:41:00', 'DD/MM/YYYY HH24:MI:SS'), TO_DATE('04/11/2019 23:09:00', 'DD/MM/YYYY HH24:MI:SS'));

            Insert into LEITOS

               (SITU_SQ, SITU_LEIT_NR, SITU_SITUACAO, SITU_DT_HR_INICIO, SITU_DT_HR_FIM)

            Values

               (1412170, '4105', 'OCU', TO_DATE('04/11/2019 23:10:00', 'DD/MM/YYYY HH24:MI:SS'), TO_DATE('08/11/2019 17:31:00', 'DD/MM/YYYY HH24:MI:SS'));

            Insert into LEITOS

               (SITU_SQ, SITU_LEIT_NR, SITU_SITUACAO, SITU_DT_HR_INICIO, SITU_DT_HR_FIM)

            Values

               (1413249, '4105', 'LIB', TO_DATE('08/11/2019 17:31:00', 'DD/MM/YYYY HH24:MI:SS'), NULL);

            Insert into LEITOS

               (SITU_SQ, SITU_LEIT_NR, SITU_SITUACAO, SITU_DT_HR_INICIO, SITU_DT_HR_FIM)

            Values

               (1412067, '4107', 'LIB', TO_DATE('04/11/2019 18:00:00', 'DD/MM/YYYY HH24:MI:SS'), TO_DATE('04/11/2019 22:13:00', 'DD/MM/YYYY HH24:MI:SS'));

            Insert into LEITOS

               (SITU_SQ, SITU_LEIT_NR, SITU_SITUACAO, SITU_DT_HR_INICIO, SITU_DT_HR_FIM)

            Values

               (1412158, '4107', 'OCU', TO_DATE('04/11/2019 22:14:00', 'DD/MM/YYYY HH24:MI:SS'), NULL);

            Insert into LEITOS

               (SITU_SQ, SITU_LEIT_NR, SITU_SITUACAO, SITU_DT_HR_INICIO, SITU_DT_HR_FIM)

            Values

               (1411763, '4109', 'OCU', TO_DATE('03/11/2019 00:32:00', 'DD/MM/YYYY HH24:MI:SS'), TO_DATE('04/11/2019 20:32:00', 'DD/MM/YYYY HH24:MI:SS'));

            Insert into LEITOS

               (SITU_SQ, SITU_LEIT_NR, SITU_SITUACAO, SITU_DT_HR_INICIO, SITU_DT_HR_FIM)

            Values

               (1412128, '4109', 'LIB', TO_DATE('04/11/2019 20:32:00', 'DD/MM/YYYY HH24:MI:SS'), TO_DATE('05/11/2019 13:43:00', 'DD/MM/YYYY HH24:MI:SS'));

            Insert into LEITOS

               (SITU_SQ, SITU_LEIT_NR, SITU_SITUACAO, SITU_DT_HR_INICIO, SITU_DT_HR_FIM)

            Values

               (1412301, '4109', 'OCU', TO_DATE('05/11/2019 13:44:00', 'DD/MM/YYYY HH24:MI:SS'), TO_DATE('07/11/2019 11:44:00', 'DD/MM/YYYY HH24:MI:SS'));

            Insert into LEITOS

               (SITU_SQ, SITU_LEIT_NR, SITU_SITUACAO, SITU_DT_HR_INICIO, SITU_DT_HR_FIM)

            Values

               (1412805, '4109', 'LIB', TO_DATE('07/11/2019 11:44:00', 'DD/MM/YYYY HH24:MI:SS'), NULL);

            Insert into LEITOS

               (SITU_SQ, SITU_LEIT_NR, SITU_SITUACAO, SITU_DT_HR_INICIO, SITU_DT_HR_FIM)

            Values

               (1412063, '4111', 'LIB', TO_DATE('04/11/2019 17:53:00', 'DD/MM/YYYY HH24:MI:SS'), TO_DATE('05/11/2019 15:29:00', 'DD/MM/YYYY HH24:MI:SS'));

            Insert into LEITOS

               (SITU_SQ, SITU_LEIT_NR, SITU_SITUACAO, SITU_DT_HR_INICIO, SITU_DT_HR_FIM)

            Values

               (1412331, '4111', 'OCU', TO_DATE('05/11/2019 15:30:00', 'DD/MM/YYYY HH24:MI:SS'), TO_DATE('08/11/2019 10:24:00', 'DD/MM/YYYY HH24:MI:SS'));

            Insert into LEITOS

               (SITU_SQ, SITU_LEIT_NR, SITU_SITUACAO, SITU_DT_HR_INICIO, SITU_DT_HR_FIM)

            Values

               (1413094, '4111', 'LIB', TO_DATE('08/11/2019 10:24:00', 'DD/MM/YYYY HH24:MI:SS'), NULL);

            Insert into LEITOS

               (SITU_SQ, SITU_LEIT_NR, SITU_SITUACAO, SITU_DT_HR_INICIO, SITU_DT_HR_FIM)

            Values

               (1412645, '4113', 'LIB', TO_DATE('06/11/2019 16:55:00', 'DD/MM/YYYY HH24:MI:SS'), TO_DATE('06/11/2019 23:09:00', 'DD/MM/YYYY HH24:MI:SS'));

            Insert into LEITOS

               (SITU_SQ, SITU_LEIT_NR, SITU_SITUACAO, SITU_DT_HR_INICIO, SITU_DT_HR_FIM)

            Values

               (1412740, '4113', 'OCU', TO_DATE('06/11/2019 23:10:00', 'DD/MM/YYYY HH24:MI:SS'), TO_DATE('08/11/2019 21:30:00', 'DD/MM/YYYY HH24:MI:SS'));

            Insert into LEITOS

               (SITU_SQ, SITU_LEIT_NR, SITU_SITUACAO, SITU_DT_HR_INICIO, SITU_DT_HR_FIM)

            Values

               (1413330, '4113', 'LIB', TO_DATE('08/11/2019 21:30:00', 'DD/MM/YYYY HH24:MI:SS'), TO_DATE('09/11/2019 08:05:00', 'DD/MM/YYYY HH24:MI:SS'));

            Insert into LEITOS

               (SITU_SQ, SITU_LEIT_NR, SITU_SITUACAO, SITU_DT_HR_INICIO, SITU_DT_HR_FIM)

            Values

               (1413373, '4113', 'OCU', TO_DATE('09/11/2019 08:06:00', 'DD/MM/YYYY HH24:MI:SS'), NULL);

            Insert into LEITOS

               (SITU_SQ, SITU_LEIT_NR, SITU_SITUACAO, SITU_DT_HR_INICIO, SITU_DT_HR_FIM)

            Values

               (1412395, '4115', 'LIB', TO_DATE('05/11/2019 18:45:00', 'DD/MM/YYYY HH24:MI:SS'), TO_DATE('05/11/2019 19:09:00', 'DD/MM/YYYY HH24:MI:SS'));

            Insert into LEITOS

               (SITU_SQ, SITU_LEIT_NR, SITU_SITUACAO, SITU_DT_HR_INICIO, SITU_DT_HR_FIM)

            Values

               (1412399, '4115', 'OCU', TO_DATE('05/11/2019 19:10:00', 'DD/MM/YYYY HH24:MI:SS'), TO_DATE('08/11/2019 19:00:00', 'DD/MM/YYYY HH24:MI:SS'));

            Insert into LEITOS

               (SITU_SQ, SITU_LEIT_NR, SITU_SITUACAO, SITU_DT_HR_INICIO, SITU_DT_HR_FIM)

            Values

               (1413303, '4115', 'LIB', TO_DATE('08/11/2019 19:00:00', 'DD/MM/YYYY HH24:MI:SS'), TO_DATE('09/11/2019 08:04:00', 'DD/MM/YYYY HH24:MI:SS'));

            Insert into LEITOS

               (SITU_SQ, SITU_LEIT_NR, SITU_SITUACAO, SITU_DT_HR_INICIO, SITU_DT_HR_FIM)

            Values

               (1413371, '4115', 'OCU', TO_DATE('09/11/2019 08:05:00', 'DD/MM/YYYY HH24:MI:SS'), NULL);

            Insert into LEITOS

               (SITU_SQ, SITU_LEIT_NR, SITU_SITUACAO, SITU_DT_HR_INICIO, SITU_DT_HR_FIM)

            Values

               (1411736, '4117', 'OCU', TO_DATE('02/11/2019 16:49:00', 'DD/MM/YYYY HH24:MI:SS'), TO_DATE('05/11/2019 16:50:00', 'DD/MM/YYYY HH24:MI:SS'));

            Insert into LEITOS

               (SITU_SQ, SITU_LEIT_NR, SITU_SITUACAO, SITU_DT_HR_INICIO, SITU_DT_HR_FIM)

            Values

               (1412368, '4117', 'LIB', TO_DATE('05/11/2019 16:50:00', 'DD/MM/YYYY HH24:MI:SS'), TO_DATE('06/11/2019 11:27:00', 'DD/MM/YYYY HH24:MI:SS'));

            Insert into LEITOS

               (SITU_SQ, SITU_LEIT_NR, SITU_SITUACAO, SITU_DT_HR_INICIO, SITU_DT_HR_FIM)

            Values

               (1412502, '4117', 'OCU', TO_DATE('06/11/2019 11:28:00', 'DD/MM/YYYY HH24:MI:SS'), TO_DATE('07/11/2019 17:03:00', 'DD/MM/YYYY HH24:MI:SS'));

            Insert into LEITOS

               (SITU_SQ, SITU_LEIT_NR, SITU_SITUACAO, SITU_DT_HR_INICIO, SITU_DT_HR_FIM)

            Values

               (1412960, '4117', 'LIB', TO_DATE('07/11/2019 17:03:00', 'DD/MM/YYYY HH24:MI:SS'), TO_DATE('08/11/2019 10:24:00', 'DD/MM/YYYY HH24:MI:SS'));

            Insert into LEITOS

               (SITU_SQ, SITU_LEIT_NR, SITU_SITUACAO, SITU_DT_HR_INICIO, SITU_DT_HR_FIM)

            Values

               (1413095, '4117', 'OCU', TO_DATE('08/11/2019 10:25:00', 'DD/MM/YYYY HH24:MI:SS'), NULL);

            Insert into LEITOS

               (SITU_SQ, SITU_LEIT_NR, SITU_SITUACAO, SITU_DT_HR_INICIO, SITU_DT_HR_FIM)

            Values

               (1412069, '4119', 'LIB', TO_DATE('04/11/2019 18:05:00', 'DD/MM/YYYY HH24:MI:SS'), TO_DATE('05/11/2019 09:47:00', 'DD/MM/YYYY HH24:MI:SS'));

            Insert into LEITOS

               (SITU_SQ, SITU_LEIT_NR, SITU_SITUACAO, SITU_DT_HR_INICIO, SITU_DT_HR_FIM)

            Values

               (1412227, '4119', 'OCU', TO_DATE('05/11/2019 09:48:00', 'DD/MM/YYYY HH24:MI:SS'), TO_DATE('08/11/2019 15:21:00', 'DD/MM/YYYY HH24:MI:SS'));

            Insert into LEITOS

               (SITU_SQ, SITU_LEIT_NR, SITU_SITUACAO, SITU_DT_HR_INICIO, SITU_DT_HR_FIM)

            Values

               (1413185, '4119', 'LIB', TO_DATE('08/11/2019 15:21:00', 'DD/MM/YYYY HH24:MI:SS'), NULL);

            Insert into LEITOS

               (SITU_SQ, SITU_LEIT_NR, SITU_SITUACAO, SITU_DT_HR_INICIO, SITU_DT_HR_FIM)

            Values

               (1413372, '4125', 'LIB', TO_DATE('09/11/2019 08:05:00', 'DD/MM/YYYY HH24:MI:SS'), NULL);

            Insert into LEITOS

               (SITU_SQ, SITU_LEIT_NR, SITU_SITUACAO, SITU_DT_HR_INICIO, SITU_DT_HR_FIM)

            Values

               (1412731, '4127', 'LIB', TO_DATE('06/11/2019 22:51:00', 'DD/MM/YYYY HH24:MI:SS'), TO_DATE('08/11/2019 12:47:00', 'DD/MM/YYYY HH24:MI:SS'));

            Insert into LEITOS

               (SITU_SQ, SITU_LEIT_NR, SITU_SITUACAO, SITU_DT_HR_INICIO, SITU_DT_HR_FIM)

            Values

               (1413127, '4127', 'OCU', TO_DATE('08/11/2019 12:48:00', 'DD/MM/YYYY HH24:MI:SS'), TO_DATE('09/11/2019 08:04:00', 'DD/MM/YYYY HH24:MI:SS'));

            Insert into LEITOS

               (SITU_SQ, SITU_LEIT_NR, SITU_SITUACAO, SITU_DT_HR_INICIO, SITU_DT_HR_FIM)

            Values

               (1413370, '4127', 'LIB', TO_DATE('09/11/2019 08:04:00', 'DD/MM/YYYY HH24:MI:SS'), NULL);

            COMMIT;

            • 3. Re: Contabilizar horas em dias diferentes
              J.Laurindo Chiappa

              Blz ? Ao que entendi, a PRIMEIRA coisa é que vc não tem na tabela a informação 'quebrada' na forma que deseja, ie, não tem um registro de hora em hora para CADA dia possível... Aí realmente, informação INEXISTENTE o banco não te mostra... Já que a informação não existe, vc tem que INVENTAR ela, ie, tem que criar colunas/registros fakes , aí vc pode pedir um UNION da informação real com a informação "inventada"...

              Então a primeira pergunta é : vc VAI querer que apereça uma linha para os dias que não tem data na tabela ? Por exemplo, eu vi nos seus dados que vc TEm registro pro dia 04, Não TEM pro dia 05, pro dia 6, aí TEM alguns registros pro dia 07.... SE vc quiser que apareça linhas pra esses dias, vc TEM que inventar esse dados... Dá um look em https://asktom.oracle.com/pls/apex/asktom.search?tag=generating-dates-between-two-date-ranges o autor primeiro usou um SELECT na ALL_OBJECTS e depois usou o 'infinite dual' (connect by na dual) pra 'inventar' dados....

              Isso feito, aí vc vai ter a questão das horas : como um dia só tem 24 horas, acho melhor vc fazer um CASE mesmo com 24 condições , não fica tão comprido assim, não ...

               

              Abraços,

               

                 Chiappa

                

              OBS : uma  Outra POSSIBILIDADE é vc usar o MODEL CLAUSE, com ele vc modela os dados como se fosse uma planilha : dá um look em https://asktom.oracle.com/pls/apex/asktom.search?tag=sql-model-clause .... É uma técnica mais complicada imho, mas pode ser usada também... Estude ambas, teste-as, e veja lá...

                 SE não conseguir usar nem uma nem outra, MOSTRA pra gente como estava ficando teu código que a gente pode palpitar em cima....