Pular para o conteúdo
  • Este tópico contém 1 resposta, 2 vozes e foi atualizado pela última vez 6 anos, 7 meses atrás por Avatar photoJosé Laurindo Chiappa.
Visualizando 2 posts - 1 até 2 (de 2 do total)
  • Autor
    Posts
  • #109265
    Bruno Mendes
    Participante

      Boa tarde,

      Trabalho em um hospital onde temos um disparo de SMS a cada 12horas informando a quantidade das unidades livres de cada setor de internação. Exemplo:

      Ala 1 – 3 un livres
      Ala 2 – 2 un livres
      UTI – 2 un livres

      O meu problema:
      Preciso incluir um total geral em porcentagem da ocupação do hospital inteiro sem incluir uma nova coluna.

      Ala 1 – 3 un livres
      Ala 2 – 2 un livres
      UTI – 2 un livres
      TOTAL = 74,26

      Algum gênio consegue me dar uma luz?

      Grato desde já!!

      #109267
      Avatar photoJosé Laurindo Chiappa
      Moderador

        Blz ? Primeira coisa, pra vc poder calcular o percentual em cima de um total, vc TEM que ter o total geral…. Segunda coisa, no RDBMS Oracle, via de regra a maneira mais fácil de se calcular QUALQUER TIPO de running total (ou percent) é via ANALYTICS, as funções analíticas dão show….
        Como vc não deu um exemplo, segue um exemplo inventado por mim : tenho o total geral de objetos no banco, quero agrupar por OWNER, e quero saber essa qtdade por owner quanto ela representa no total…. Antes de executar a query, deixa eu só formatar meu sqlplus :

        jlchiappa@DESENV:SQL>set pages 9999
        jlchiappa@DESENV:SQL>compute sum of PERC on report
        jlchiappa@DESENV:SQL>compute sum of QTD_NO_GRUPO on report
        jlchiappa@DESENV:SQL>break on report

        ==> OK, a query vai ser algo no estilo :

        jlchiappa@DESENV:SQL>select owner, QTD_NO_GRUPO,
        2 round(100*ratio_to_report(QTD_NO_GRUPO) over (), 2) perc
        3 from (select owner, count(*) QTD_NO_GRUPO
        4 from dba_objects
        5 group by owner
        6 )
        7* order by 1, 2 desc;

        ==> ó a execução dela :

        OWNER QTD_NO_GRUPO PERC
        —————- ———— ———
        ABACO 2579 5,21
        BEAUTYHATE 1 0
        DBSNMP 50 ,1
        FXESYS 282 ,57
        IMPTST_ATUAL 139 ,28
        IMPTST_GERAL 139 ,28
        MDSYS 498 1,01
        ORACLE_OCM 8 ,02
        ORDPLUGINS 10 ,02
        ORDSYS 1721 3,47
        OUTLN 9 ,02
        PUBLIC 19874 40,11
        SCOTT 14 ,03
        SI_INFORMTN_SCHEMA 8 ,02
        SYS 22609 45,63
        SYSTEM 452 ,91
        TSMSYS 3 ,01
        VARIABLE_IMPORT 159 ,32
        WMSYS 315 ,64
        XDB 674 1,36
        ———– ———
        sum 49544 100,01

        20 linhas selecionadas.

        C
        jlchiappa@DESENV:SQL>select count(*) from dba_objects;

        COUNT(*)
        ———
        49544

        ==>> Sacou ?? Se vc quiser um exemplo mais próximo da sua realidade, manda pra gente uma versão *** RESUMIDA *** da tabela em questão (NÃO ROLA mandar a coisa enorme completa – versão RESUMIDA, só com as poucas colunas necessárias, PLZ!!), uns INSERTs pra popular alguns dados nela E mostre como obter o TOTAL, que aí eu aplico Analytics em cima…

        []s

        Chiappa

      Visualizando 2 posts - 1 até 2 (de 2 do total)
      • Você deve fazer login para responder a este tópico.
      plugins premium WordPress