8 Replies Latest reply on Apr 28, 2019 11:12 AM by Nilton Kazuyuki Ueda

    União de consulta personalizada em diferentes bancos

    Rafael Marques

      Pessoal precisando de uma ajuda.

       

           Estou tendo que construir uma análise utilizado uma consulta personalizada e devo unir os dados de bancos diferentes, ao total são sete bancos, mas em todos eles as tabelas e toda estrutura é idêntica. O motivo é por cada banco está interno em cada local.

          

      Exemplo da consulta 1: Devo trazer os dados de leitos ocupados de todos os banco e com isso criar uma dimensão onde identifique o nome do hospital que no caso é o nome do banco, pois dentro dos dados não há como identificar o nome do hospital, apenas pelo nome do banco.

       

       

      BANCOS

       

      CIDH_PACIENTE

      CSDL_PACIENTE

      CSM_PACIENTE

      HGCC_PACIENTE

      HGF_PACIENTE

      HSJ_PACIENTE

      IPC_PACIENTE

       

       

      1 - Quantidade de Leitos ocupados.

       

       

      select

      c.dsc_clinica, count(isn_leito) as leitos_ocupados

      from

      medpoint.t_leito l

      inner join medpoint.t_enfermaria e on e.isn_enfermaria = l.isn_enfermaria

      inner join medpoint.t_clinica c on c.isn_clinica = e.isn_clinica

      where

      l.isn_leito in (select isn_leito from medpoint.t_internacao_leito where dat_alta is null)

      and l.flg_extra = 'N'

      group by c.dsc_clinica

      order by 1

       

       

      2 - Quantidade de Leitos Livres.

      select

      c.dsc_clinica, count(l.isn_leito) as leitos_livres

      from

      medpoint.t_leito l

      inner join medpoint.t_enfermaria e on e.isn_enfermaria = l.isn_enfermaria

      inner join medpoint.t_clinica c on c.isn_clinica = e.isn_clinica

      where

      l.isn_leito not in (select isn_leito from medpoint.t_internacao_leito where dat_alta is null)

      and l.isn_leito not in (select isn_leito from medpoint.t_leito_interditado where dat_liberacao is null)

      and l.isn_leito not in (select isn_leito from medpoint.t_leito_reserva where dat_desfazer is null)

      and l.flg_extra = 'N'

      and l.flg_ativo = 'S'

      group by c.dsc_clinica

      order by 1

       

       

      3 - Leitos Interditados

      select

      c.dsc_clinica, count(l.isn_leito) as leitos_interditados

      from

      medpoint.t_leito l

      inner join medpoint.t_enfermaria e on e.isn_enfermaria = l.isn_enfermaria

      inner join medpoint.t_clinica c on c.isn_clinica = e.isn_clinica

      where

      l.isn_leito in (select isn_leito from medpoint.t_leito_interditado where dat_liberacao is null)

      and l.flg_extra = 'N'

      and l.flg_ativo = 'S'

      group by c.dsc_clinica

      order by 1