Jump to content

nicolasrds

Members
  • Content count

    11
  • Joined

  • Last visited

Community Reputation

0 Comum

About nicolasrds

  1. nicolasrds

    Converter Coluna em Linha Oracle

    Vlw Motta, O meu caso é igual o do 2º link. Acabei resolvendo sem o PIVOT.
  2. nicolasrds

    Converter Coluna em Linha Oracle

    Boa tarde, Tenho a seguinte consulta: select usuario.usuarionm USUARIOS item.desc DESCRICAO count(item.qtde) TOTAL, estoque.data from usuario, item, estoque where usuario.cd_estoque = estoque.cd_usuario and item.cd_estoque = estoque.cd_estoque and item.sn_realizado = 'S' group by usuario.usuarionm, item.desc, estoque.data Traz o resultado abaixo USUARIOS DESCRICAO TOTAL DATA USUARIO1 CONCENTRADO 1 6 28/04/17 USUARIO2 CONCENTRADO 2 3 18/05/17 USUARIO3 CONCENTRADO 3 4 18/05/17 USUARIO1 CONCENTRADO 1 8 20/05/17 Gostaria de Trazer assim: USUARIOS DESCRICAO 28/04/17 18/05/17 20/05/17 USUARIO1 CONCENTRADO 1 6 USUARIO2 CONCENTRADO 2 3 USUARIO3 CONCENTRADO 3 4 USUARIO1 CONCENTRADO 1 8 Já tentei utilizar o PIVOT mas não deu muito certo. Alguma ideia?!? Desde já agradeço pela ajuda.
  3. Boa noite, Pessoal podem me ajudar, estou precisando eliminar a duplicidade de registros. Segue query: select pdc.cd_pront as Pront, case when htc.dt_checagem is not null and htc.suspenso = 'N' then 'SIM' else 'NAO' end as Checado from pw_documento_clinico pdc inner join pw_editor_clinico pec on pec.cd_documento_clinico = pdc.cd_documento_clinico inner join registro_documento_obrigatorio rdo on rdo.cd_editor_clinico = pec.cd_editor_registro left join hritpre_cons htc on rdo.cd_itpre_med = htc.cd_itpre_med where pdc.nm_documento = 'DOCUMENTO' and pdc.tp_status in ('FECHADO') and rdo.cd_documento = 999 and pdc.cd_pront = 99999 and pdc.dh_referencia = '01/01/2001' Resultado: Pront | Checado 99999 | SIM 99999 | SIM Acontece que na tabela hritpre_cons pode acontecer que o campo cd_itpre_med apresente o mesmo valor em vários registros e este é o único campo que posso utilizar para o join. Por isso está ocorrendo a duplicidade. Preciso trazer o primeiro valor dos campos suspenso e dh_checagem que conste o cd_itpre_med . Como posso corrigir no select acima. Agradeço pela ajuda.
  4. nicolasrds

    Formatar a query para trazer em coluna ao invés da linha

    Pessoal boa noite, Com os agrupamentos não deu certo, mas me deu uma ideia e acabei resolvendo de um outro jeito. De qualquer forma vlw. vocês são feras :D select atendimento, paciente, data_internacao, data_entrada, data_saida, from ( -- TRANSFERIDO DE(ENTRADA) select atendime.cd_atendimento atendimento, paciente.nm_paciente paciente, unid_int.ds_unid_int unidade_internacao, trunc(atendime.dt_atendimento) data_internacao, leito_origem.ds_resumo origem, leito_destino.ds_resumo destino, mov_int.hr_mov_int data_entrada, case when(select min(m2.hr_mov_int) from mov_int m2 where m2.cd_leito_anterior = mov_int.cd_leito and m2.cd_atendimento = mov_int.cd_atendimento and m2.hr_mov_int > mov_int.hr_mov_int) is null then (select at.hr_alta from atendime at where at.cd_atendimento = mov_int.cd_atendimento and at.cd_mot_alt is not null and at.hr_alta > mov_int.hr_mov_int) else (select min(m2.hr_mov_int) from mov_int m2 where m2.cd_leito_anterior = mov_int.cd_leito and m2.cd_atendimento = mov_int.cd_atendimento and m2.hr_mov_int > mov_int.hr_mov_int) end data_saida from mov_int inner join leito leito_destino on leito_destino.cd_leito = mov_int.cd_leito inner join leito leito_origem on leito_origem.cd_leito = mov_int.cd_leito_anterior inner join unid_int on leito_destino.cd_unid_int = unid_int.cd_unid_int inner join atendime on mov_int.cd_atendimento = atendime.cd_atendimento inner join paciente on atendime.cd_paciente = paciente.cd_paciente where mov_int.tp_mov = 'O' and atendime.tp_atendimento = 'I' and leito_origem.cd_unid_int != leito_destino.cd_unid_int and unid_int.sn_ativo = 'S' and trunc(nvl(mov_int.dt_lib_mov, sysdate)) >= trunc(mov_int.dt_mov_int) union all --INTERNACAO(ENTRADA) select atendime.cd_atendimento atendimento, paciente.nm_paciente paciente, unid_int.ds_unid_int unidade_internacao, trunc(atendime.dt_atendimento) data_internacao, ' ' origem, leito_destino.ds_resumo destino, mov_int.hr_mov_int data_entrada, case when(select min(m2.hr_mov_int) from mov_int m2 where m2.cd_leito_anterior = mov_int.cd_leito and m2.cd_atendimento = mov_int.cd_atendimento and m2.hr_mov_int > mov_int.hr_mov_int) is null then (select at.hr_alta from atendime at where at.cd_atendimento = mov_int.cd_atendimento and at.cd_mot_alt is not null and at.hr_alta > mov_int.hr_mov_int) else (select min(m2.hr_mov_int) from mov_int m2 where m2.cd_leito_anterior = mov_int.cd_leito and m2.cd_atendimento = mov_int.cd_atendimento and m2.hr_mov_int > mov_int.hr_mov_int) end data_saida from mov_int inner join leito leito_destino on leito_destino.cd_leito = mov_int.cd_leito inner join unid_int on leito_destino.cd_unid_int = unid_int.cd_unid_int inner join atendime on mov_int.cd_atendimento = atendime.cd_atendimento inner join paciente on atendime.cd_paciente = paciente.cd_paciente where mov_int.tp_mov = 'I' and atendime.tp_atendimento = 'I' and unid_int.sn_ativo = 'S' and trunc(nvl(mov_int.dt_lib_mov, sysdate)) >= trunc(mov_int.dt_mov_int) )where data_entrada between '01/10/2016' and '31/10/2016' and unidade_internacao = 'UNIDADE A' and atendimento = 102866;
  5. Pessoal, Como faço para formatar a query abaixo para trazer a primeira 'data_entrada' com a primeira 'data_saida' ?!? Atualmente minha query está trazendo como linha, gostaria de trazer como coluna. select atendimento, paciente, data_internacao, data_entrada, data_saida from ( -- TRANSFERIDO PARA(SAIDA) select atendime.cd_atendimento atendimento, paciente.nm_paciente paciente, trunc(atendime.dt_atendimento) data_internacao, ' ' data_entrada, to_char(mov_int.hr_mov_int,'dd/mm/yyyy hh24:mi') data_saida, trunc(mov_int.dt_mov_int) data_pesquisa, unid_int.ds_unid_int unidade_internacao from mov_int inner join leito leito_destino on leito_destino.cd_leito = mov_int.cd_leito inner join leito leito_origem on leito_origem.cd_leito = mov_int.cd_leito_anterior inner join unid_int on leito_origem.cd_unid_int = unid_int.cd_unid_int inner join atendime on mov_int.cd_atendimento = atendime.cd_atendimento inner join paciente on atendime.cd_paciente = paciente.cd_paciente where mov_int.tp_mov = 'O' and atendime.tp_atendimento = 'I' and leito_origem.cd_unid_int != leito_destino.cd_unid_int and unid_int.sn_ativo = 'S' and trunc(nvl(mov_int.dt_lib_mov, sysdate)) >= trunc(mov_int.dt_mov_int) union all -- TRANSFERIDO DE(ENTRADA) select atendime.cd_atendimento atendimento, paciente.nm_paciente paciente, trunc(atendime.dt_atendimento) data_internacao, to_char(mov_int.hr_mov_int, 'dd/mm/yyy hh24:mi') data_entrada, ' ' data_saida, trunc(mov_int.dt_mov_int) data_pesquisa, unid_int.ds_unid_int unidade_internacao from mov_int inner join leito leito_destino on leito_destino.cd_leito = mov_int.cd_leito inner join leito leito_origem on leito_origem.cd_leito = mov_int.cd_leito_anterior inner join unid_int on leito_destino.cd_unid_int = unid_int.cd_unid_int inner join atendime on mov_int.cd_atendimento = atendime.cd_atendimento inner join paciente on atendime.cd_paciente = paciente.cd_paciente where mov_int.tp_mov = 'O' and atendime.tp_atendimento = 'I' and leito_origem.cd_unid_int != leito_destino.cd_unid_int and unid_int.sn_ativo = 'S' and trunc(nvl(mov_int.dt_lib_mov, sysdate)) >= trunc(mov_int.dt_mov_int) union all --INTERNACAO(ENTRADA) select atendime.cd_atendimento atendimento, paciente.nm_paciente paciente, trunc(atendime.dt_atendimento) data_internacao, to_char(mov_int.hr_mov_int, 'dd/mm/yyy hh24:mi') data_entrada, ' ' data_saida, trunc(mov_int.dt_mov_int) data_pesquisa, unid_int.ds_unid_int unidade_internacao from mov_int inner join leito leito_destino on leito_destino.cd_leito = mov_int.cd_leito inner join unid_int on leito_destino.cd_unid_int = unid_int.cd_unid_int inner join atendime on mov_int.cd_atendimento = atendime.cd_atendimento inner join paciente on atendime.cd_paciente = paciente.cd_paciente where mov_int.tp_mov = 'I' and atendime.tp_atendimento = 'I' and unid_int.sn_ativo = 'S' and trunc(nvl(mov_int.dt_lib_mov, sysdate)) >= trunc(mov_int.dt_mov_int) union all --ALTA(SAIDA) select atendime.cd_atendimento atendimento, paciente.nm_paciente paciente, trunc(atendime.dt_atendimento) data_internacao, ' ' data_entrada, to_char(atendime.hr_alta,'dd/mm/yyyy hh24:mi') data_saida, trunc(atendime.dt_alta) data_pesquisa, unid_int.ds_unid_int unidade_internacao from atendime inner join paciente on atendime.cd_paciente = paciente.cd_paciente inner join leito on leito.cd_leito = atendime.cd_leito inner join unid_int on leito.cd_unid_int = unid_int.cd_unid_int inner join mot_alt on atendime.cd_mot_alt = mot_alt.cd_mot_alt where atendime.tp_atendimento = 'I') where data_pesquisa between '01/10/2016' and '31/10/2016' and unidade_internacao = 'UNIDADE A' and atendimento = 102866 order by data_pesquisa; Resultado atual: Atendimento | Paciente | Data_internacao| Data_entrada | Data_saida | 102866 NICOLAS RODRIGUES 22/10/16 24/10/016 01:53 102866 NICOLAS RODRIGUES 22/10/16 27/10/016 17:44 102866 NICOLAS RODRIGUES 22/10/16 27/10/2016 16:13 102866 NICOLAS RODRIGUES 22/10/16 30/10/2016 18:31 A ideia é trazer da seguinte forma: Atendimento | Paciente | Data_internacao| Data_entrada | Data_saida | 102866 NICOLAS RODRIGUES 22/10/16 24/10/016 01:53 27/10/2016 16:13 102866 NICOLAS RODRIGUES 22/10/16 27/10/016 17:44 30/10/2016 18:31 Desde já agradeço pela ajuda.
  6. Desculpe pela demora, Deu certo a dica! Obrigado!! :)
  7. Pessoal boa tarde, Preciso criar uma lista de datas com todas as horas e minutos, Como posso percorrer todas as horas e minutos de cada dia desse intervalo ? ( select to_date('20/11/2016', 'DD/MM/YYY') + rownum where to_date('20/11/2016', 'DD/MM/YYY') + rownum <= to_date('23/11/2016', 'DD/MM/YYYY') ) Desde já agradeço pela ajuda.
×

Important Information

Ao usar o fórum, você concorda com nossos Terms of Use.