Jump to content

EliseuFirmino

Members
  • Content count

    29
  • Joined

  • Last visited

Everything posted by EliseuFirmino

  1. EliseuFirmino

    Média Anual

    Vou realizar uns testes e dou retorno.
  2. EliseuFirmino

    Média Anual

    Bom dia pessoal! Tenho a seguinte consulta: SELECT to_char(a.dt_entrada,'yyyy') ano, COUNT(A.NR_ATENDIMENTO) total_atendimento, COUNT(A.NR_ATENDIMENTO)/12 media FROM TASY.ATENDIMENTOS_V A WHERE decode(upper(:tp_data), 'E', a.dt_entrada, 'A', a.dt_alta) BETWEEN :DT_INICIAL AND TASY.FIM_DIA(:DT_FINAL) and a.dt_cancelamento is null and a.cd_setor_atendimento in (126,130, 132, 29) and to_number(a.cd_estabelecimento) = 1 group by to_char(a.dt_entrada,'yyyy') order by 1 desc Com o seguinte retorno: ano total_atendimento media 2018 21570 1797,5 2017 21369 1780,75 2016 16469 1372,41666666667 2015 10736 894,666666666667 Nela vejo a média de atendimentos em casa ano. Numa consulta de 1 de jan de 2015 até 31 de dez de 2017, tudo funciona normalmente. Mas se eu colocar por exemplo de 1 de jan de 2015 até 30 de set de 2018, tenho um problema. Deveria dividir por 9 e não por 12. Alguém saberia me indicar como devo realizar esta consulta de forma a calcular os meses que estão no período indicado, com quebra por ano?
  3. EliseuFirmino

    Consulta

    Bom dia! Tenho uma view que me trás todos os procedimentos realizados em um hospital. Existem pacientes que fazem o procedimento Consulta_Ambulatorial e depois realiza outros procedimentos de exame(ex: endoscopia). Existem pacientes que não realizam Consulta_Ambulatorial mas realizam outros exames(ex: exame de sangue). Eu preciso realizar uma consulta que verifique se: Paciente fez consulta ambulatorial ? imprime consulta e os outros exames realizados. Não fez consulta ambulatorial ? não imprime. Tentei utilizar as instruções IF-THEN-ELSE mas não tive sucesso. Alguém pode me dar uma luz?
  4. EliseuFirmino

    SUM() Com valores repetidos

    Muito obrigado a todos pela ajuda. Consegui resolver com um select recursivo.
  5. EliseuFirmino

    SUM() Com valores repetidos

    Tenho o seguinte código para retornar o valor total da conta médica: select sum(obter_valor_conta(a.nr_interno_conta,'0')) vl_total from procedimento_paciente_v a where a.dt_procedimento between :dt_inicial and fim_dia(:dt_final) and a.cd_medico_executor = decode(:cd_medico,0,a.cd_medico_executor,:cd_medico) Meu problema é o seguinte, em um atendimento medico posso ter uma conta medica com vários procedimentos diferentes. Na hora de somar valor da conta, está sendo somado o valor da conta varias vezes, quando deveria ser somado apenas uma única vez. Na planilha em anexo o atendimento de número 975299 terá seu valor total somado duas vezes ao invés de apenas uma única vez. Estou com dificuldades para encontrar uma solução. Alguém pode me dar uma dica ? medico.xls
  6. EliseuFirmino

    SUM() Com valores repetidos

    O Excel foi só para mostrar qual campo preciso somar e não estou conseguindo somar corretamente.
  7. EliseuFirmino

    UPDATE usando uma function

    Bom dia, Estou tentando executar um update, porém não estou conseguindo o retorno desejado. O campo que eu quero alterar de N para S não está sendo alterado. O valor do grupo de preciso alterar é 1, e está gravado em uma function. update material set ie_prescricao = 'S' where Obter_estrutura_material(cd_material,'G') = 1
  8. EliseuFirmino

    UPDATE usando uma function

    Tenho o seguinte retorno ao executar o comando: 0 rows updated.
  9. EliseuFirmino

    UPDATE usando uma function

    Retorna todos os materiais que estão no grupo 1, independente do "ie_prescricao" ser "S" ou "N".
  10. EliseuFirmino

    Filtro Query

    Exatamente, era a hierarquia dos ANDs e ORs. Muito obrigado pela ajuda.
  11. EliseuFirmino

    Filtro Query

    Bom dia. Estou tentando realizar um filtro como o da linha destacada com os asteriscos, porém ele simplesmente não funciona. Procurei algum caso parecido, utilizando joins mas não encontrei nada na internet. select distinct substr(obter_nome_setor(o.cd_setor_atendimento),1,250) ds_setor_atendimento, o.cd_unidade_basica || ' ' || o.cd_unidade_compl cd_unidade, decode(o.ie_status_unidade, 'R', '(Reserva '|| o.nm_paciente_reserva ||')', 'A', '(Paciente no leito)', 'H', '(Higienização)', 'I','(Interditado)','O','(Isolado)',o.nm_pessoa_fisica) nm_paciente, decode(ACC.NR_ACOMPANHANTE , 1 , 'Sim', 0, 'Não',2 , 'Sim', NULL , 'Não',3 , 'Sim') dir_acomp, '( )' cp_select, '________________________________________________' cp_linha, o.nr_atendimento, o.ds_convenio, O.dt_entrada dt_atendimento from ocupacao_unidade_v o left join atend_categoria_convenio ACC on O.NR_ATENDIMENTO=ACC.NR_ATENDIMENTO where obter_classif_setor(cd_setor_atendimento) in (3,4) and (:ie_paciente = 'S' ) or (:ie_paciente = 'N' and cd_pessoa_fisica is not null) ****and ((:NR_ACOMPANHANTE = 'T') or (decode( acc.NR_ACOMPANHANTE, 1 , 'S', 0, 'N',2 , 'S', NULL , 'N',3 , 'S')=:NR_ACOMPANHANTE))**** order by ds_setor_atendimento, o.cd_unidade_basica || ' ' || o.cd_unidade_compl
  12. EliseuFirmino

    Filtro Query

    Com o CASE também não funcionou. Fiz alguns testes sem o null, mas também não funcionaram.
  13. EliseuFirmino

    Filtro Query

    O filtro 'S' e 'N' não funcionam.
  14. EliseuFirmino

    filtro Oracle

    O retorno foi mais rápido desta forma.
  15. EliseuFirmino

    filtro Oracle

    Bom dia! Estou tentando realizar um filtro por médicos, onde eu tenha a opção de selecionar um ou todos os médicos da instituição no relatório. Porém ao utilizar ((a.cd_medico = :cd_medico) or (0 = :cd_medico)) meu retorno é em branco. Alguém tem ideia do que posso acertar para o rel sair da forma que eu quero ? obg. Segue codigo: select a.nr_atendimento, a.nr_interno_conta, a.dt_procedimento, a.nm_medico, p.nm_pessoa_fisica nm_paciente, substr(obter_nome_convenio(a.cd_convenio),1,200) ds_convenio, substr(obter_nome_setor(a.CD_SETOR_ATENDIMENTO),1,125) setor_atendimento, /*a.cd_procedimento || '-' || */a.ds_procedimento ds_procedimento, sum(a.qt_procedimento) qt_procedimento, vl_unitario, sum(a.vl_medico) vl_medico, decode(Obter_Status_Protocolo(a.nr_seq_protocolo), 1, 'N', 2, 'S') FAT, sum(a.vl_medico) *0.05 imposto, case when a.IE_RESPONSAVEL_CREDITO = 01 then 0 when a.IE_RESPONSAVEL_CREDITO = 03 then 0 when a.IE_RESPONSAVEL_CREDITO = 02 and a.CD_SETOR_ATENDIMENTO = 29 then ( (sum(a.vl_medico) - sum(a.vl_medico) *0.05/*imposto*/) *80) /100 when a.IE_RESPONSAVEL_CREDITO = 02 then sum(a.vl_medico) - sum(a.vl_medico) *0.05 end vl_repasse, decode( a.IE_RESPONSAVEL_CREDITO, 01,'H', 02, 'R', 03, 'M' ) repasse From pessoa_fisica p, atendimento_paciente c, conta_paciente_honorario_v a where a.nr_atendimento = c.nr_atendimento and c.cd_pessoa_fisica = p.cd_pessoa_fisica and a.cd_medico is not null and c.cd_estabelecimento = :cd_estabelecimento and a.dt_item between :dt_inicial and :dt_final and nvl(a.nr_seq_proc_pacote,0) <> a.nr_sequencia and a.cd_medico = :cd_medico --and ((a.cd_medico = :cd_medico) or (0 = :cd_medico)) AND ((a.cd_convenio = :CD_CONV_ATEND) OR (0 = :CD_CONV_ATEND)) and ((c.ie_tipo_convenio = :cd_tipo_conv) or (0 = :cd_tipo_conv)) group by a.nr_atendimento,a.nr_interno_conta, a.nr_crm, a.cd_procedimento || '-' || a.ds_procedimento , a.cd_setor_atendimento, vl_unitario, a.dt_procedimento, p.nm_pessoa_fisica, obter_nome_convenio(a.cd_convenio), a.ds_funcao,a.ds_procedimento, a.nr_seq_protocolo, a.nm_medico, a.cd_medico, a.IE_RESPONSAVEL_CREDITO order by a.nr_atendimento, a.ds_funcao
  16. EliseuFirmino

    filtro Oracle

    Motta, obrigado pelo retorno. Desta forma forma consegui retorno de todos os médicos, porém a consulta ficou bem lenta pela quantidade de atendimentos. rs
  17. EliseuFirmino

    filtro Oracle

    Tentei, mas sucesso.
  18. EliseuFirmino

    Código

    Desta forma o meu retorno é: ORA-00918: column ambiguously defined decode(ACC.NR_ACOMPANHANTE , 1 , 'Sim', 0, 'Não',2 , 'Sim', NULL , 'Não',3 , 'Sim') dir_acomp, aac.ds_observacao, gera ORA-00904: "AAC"."DS_OBSERVACAO": invalid identifier
  19. EliseuFirmino

    Código

    Preciso substituir "'( )' cp_select, '________________________________________________' cp_linha" por "ds_observacao" da tabela atend_categoria_convenio. Estou encontrando uma dificuldade enorme com algo que me parece ser simples. select distinct substr(obter_nome_setor(o.cd_setor_atendimento),1,250) ds_setor_atendimento, o.cd_unidade_basica || ' ' || o.cd_unidade_compl cd_unidade, decode(o.ie_status_unidade, 'R', '(Reserva '|| o.nm_paciente_reserva ||')', 'A', '(Paciente no leito)', 'H', '(Higienização)', 'I','(Interditado)','O','(Isolado)',o.nm_pessoa_fisica) nm_paciente, decode(ACC.NR_ACOMPANHANTE , 1 , 'Sim', 0, 'Não',2 , 'Sim', NULL , 'Não',3 , 'Sim') dir_acomp, '( )' cp_select, '________________________________________________' cp_linha, o.nr_atendimento, o.ds_convenio, O.dt_entrada dt_atendimento from ocupacao_unidade_v o left join atend_categoria_convenio ACC on O.NR_ATENDIMENTO=ACC.NR_ATENDIMENTO where obter_classif_setor(cd_setor_atendimento) in (3,4) and (:ie_paciente = 'S' ) or (:ie_paciente = 'N' and cd_pessoa_fisica is not null) order by ds_setor_atendimento, o.cd_unidade_basica || ' ' || o.cd_unidade_compl
  20. EliseuFirmino

    Texto long no oracle

    Não consigo retornar o texto com o comando select. Campo long. select ds_laudo from laudo_paciente a, prescr_medica b where a.nr_atendimento = b.nr_atendimento and b.nr_prescricao = :nr_prescricao
  21. EliseuFirmino

    Texto long no oracle

    Existe um texto gravado que é o laudo medico sobre o estado do paciente, esse laudo iria para um relatorio, mas quando seleciono o campo onde está gravada a mensagem do lado aparece este texto : {\rtf1\ansi\deff0{\fonttbl{\f0\fnil\fcharset0 Times New Roman;}} {\colortbl ;\r
  22. EliseuFirmino

    Texto long no oracle

    Versão Oracle Database 10g Enterprise Edition Release 10.2.0.4.0 - 64bi data type - long No Toad for Oracle e no sqlplus o resultado é o mesmo: {\rtf1\ansi\deff0{\fonttbl{\f0\fnil\fcharset0 Times New Roman;}} {\colortbl ;\r
×

Important Information

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