Publicidade

josePeixoto

Members
  • Total de itens

    10
  • Registro em

  • Última visita

Reputação

0 Comum

Sobre josePeixoto

  • Data de Nascimento 26-12-1992

Informações Pessoais

  • Sexo
    Masculino
  1. Oi gente, já resolvi. O erro era por causa do "group by". Eu estava contando apenas dentro da subconsulta e não dentro da consulta em si. Fiz umas modificações e deu certo. Segue o código pra quem tiver o mesmo problema e quiser alguma noção de como resolve. SELECT TRUNC(a.dt_atualizacao) dt, sum((SELECT COUNT(a.cd_pessoa_fisica) FROM agenda_consulta f WHERE a.cd_pessoa_fisica = f.cd_pessoa_fisica AND a.nr_seq_caixa_rec = cr.nr_sequencia AND f.ie_classif_agenda ='P' AND TRUNC(a.dt_atualizacao) BETWEEN :dt_inicial AND :dt_final AND a.CD_ESTABELECIMENTO=:cd_estab)) qtt_cons, sum((SELECT COUNT(a.cd_pessoa_fisica) FROM agenda_consulta f WHERE a.cd_pessoa_fisica = f.cd_pessoa_fisica AND a.nr_seq_caixa_rec = cr.nr_sequencia AND f.ie_classif_agenda ='Pr' AND TRUNC(a.dt_atualizacao) BETWEEN :dt_inicial AND :dt_final AND a.CD_ESTABELECIMENTO=:cd_estab)) qtt_proc, sum((SELECT COUNT(a.cd_pessoa_fisica) FROM agenda_paciente f WHERE a.cd_pessoa_fisica = f.cd_pessoa_fisica AND a.nr_seq_caixa_rec = cr.nr_sequencia AND f.IE_STATUS_AGENDA ='E' AND TRUNC(a.dt_atualizacao) BETWEEN :dt_inicial AND :dt_final AND a.CD_ESTABELECIMENTO=:cd_estab)) qtt_exa FROM adiantamento a, caixa_receb cr WHERE a.nr_seq_caixa_rec = cr.nr_sequencia AND TRUNC(a.dt_atualizacao) BETWEEN :dt_inicial AND :dt_final group by TRUNC(a.dt_atualizacao) ORDER BY 1; Obrigado à todos.
  2. Olá, alguém pode me ajudar nessa consulta? SELECT TRUNC(a.dt_atualizacao) dt, (SELECT COUNT(a.cd_pessoa_fisica) FROM agenda_consulta f, adiantamento a, caixa_receb cr WHERE a.cd_pessoa_fisica = f.cd_pessoa_fisica AND a.nr_seq_caixa_rec = cr.nr_sequencia AND f.ie_classif_agenda ='P' AND TRUNC(a.dt_atualizacao) BETWEEN :dt_inicial AND :dt_final AND a.CD_ESTABELECIMENTO=:cd_estab) qtt_cons, (SELECT COUNT(a.cd_pessoa_fisica) FROM agenda_consulta f, adiantamento a, caixa_receb cr WHERE a.cd_pessoa_fisica = f.cd_pessoa_fisica AND a.nr_seq_caixa_rec = cr.nr_sequencia AND f.ie_classif_agenda ='Pr' AND TRUNC(a.dt_atualizacao) BETWEEN :dt_inicial AND :dt_final AND a.CD_ESTABELECIMENTO=:cd_estab) qtt_proc, (SELECT COUNT(a.cd_pessoa_fisica) FROM agenda_paciente f, adiantamento a, caixa_receb cr WHERE a.cd_pessoa_fisica = f.cd_pessoa_fisica AND a.nr_seq_caixa_rec = cr.nr_sequencia AND f.IE_STATUS_AGENDA ='E' AND TRUNC(a.dt_atualizacao) BETWEEN :dt_inicial AND :dt_final AND a.CD_ESTABELECIMENTO=:cd_estab) qtt_exa FROM adiantamento a, caixa_receb cr WHERE a.nr_seq_caixa_rec = cr.nr_sequencia AND TRUNC(a.dt_atualizacao) BETWEEN :dt_inicial AND :dt_final GROUP BY TRUNC(a.dt_atualizacao) ORDER BY 1; Ela ta me trazendo as datas direitinho, mas não está somando por elas, mas sim, tudo e colocando na tabela. Seguem os resultados 01/01/2017 68 15 10 02/01/2017 68 15 10 03/01/2017 68 15 10 04/01/2017 68 15 10 ... Alguém tem alguma noção do que tá errado ou como resolver? Obrigado desde já!!!
  3. acho que com um exemplo fica melhor. Tipo: Select t.id , (select count(*) from tabela2 t2 where t2.id = t1.id) qtdt2 From tabela1 t1 where t1.id is not null and t1.media > 3. A minha pergunta é: esse' where t1.id is not null and t1.media > 3' também tem que vir nesse select: (select count(*) from tabela2 t2 where t2.id = t1.id)? Obrigado pela atenção!
  4. Isso, mas as condições do select externo (where's) da tabela1 tem que estar tbm dentro desse select que tem a tabela2?
  5. Olá, gostaria de saber uma forma de fazer uma consulta com a lógica abaixo: select t.id, (case when t.id = t2.id then count (1) ) from table1 t Só que eu não queria que a tabela t2 entrasse no 'from' da consulta externa. Há alguma maneira? Se não estiver claro, avisem que eu tento explicar de uma maneira mais clara. Obrigado desde já.
  6. Olá a todos! Eu gostaria de saber como funciona um plano de execução no Oracle e se isso é comumente usado nas empresas hoje. Eu procurei materiais na internet e não achei nada claro, porque estou tentando otimizar umas consultas. Obrigado desde já. Abraço!
  7. Olá, o meu problema é o seguinte: 1) quero fazer média de alguns valores 2) alguns são zero e outros são números negativos 3) não quero que os números negativos entrem na contagem, quero que eles sejam transformados em 0 e contabilizem na hora de fazer a média. Alguém saberia como fazer isso com uma condição dentro do where ou de alguma outra forma? Obrigado desde já!
  8. Olá, alguém poderia me informar onde está o erro dessa consulta? SELECT DISTINCT relatorio.CD_RELATORIO, relatorio.DT_ATUALIZACAO, relatorio.DS_TITULO descricao, obter_usuario_pf(relatorio_documentacao.CD_PF_SOLIC) Solicitante, obter_usuario_pf(relatorio_documentacao.CD_PF_CRIADOR) Criador, wm_concat(perfil.ds_perfil) Perfil FROM relatorio INNER JOIN relatorio_documentacao ON relatorio.NM_USUARIO = relatorio_documentacao.NM_USUARIO INNER JOIN relatorio_perfil ON relatorio_documentacao.NR_SEQ_RELATORIO = relatorio_perfil.NR_SEQ_RELATORIO INNER JOIN PERFIL ON relatorio_perfil.cd_perfil = perfil.cd_perfil WHERE obter_usuario_pf(relatorio_documentacao.CD_PF_SOLIC) IS NOT NULL AND obter_usuario_pf(relatorio_documentacao.CD_PF_CRIADOR) IS NOT NULL AND relatorio.DT_ATUALIZACAO BETWEEN :dt_inicio AND :dt_fim GROUP BY perfil.ds_perfil, relatorio.CD_RELATORIO, relatorio.DT_ATUALIZACAO, relatorio.DS_TITULO ORDER BY 4,2,1 Ele está dando o erro: ORA-00979: não é uma expressão GROUP BY. Obrigado desde já!
  9. oracle

    Olá, alguém saberia me dizer onde está o erro na função abaixo. function verifica_valor(x in number) return number is valor number; begin IF x:=0 then valor:=0; return valor; ELSE return x; end if; end; Sou novato no oracle, então não sei resolver questões assim de prima. Obrigado desde já.
  10. Olá, gostaria de saber como eu poderia otimizar a consulta para o cálculo de porcentagem abaixo: ((select count(a.cd_senha_gerada) contador from paciente_senha_fila a where obter_min_entre_datas(a.dt_geracao_senha, a.dt_primeira_chamada,1) > 15 and a.dt_geracao_senha between :dt_inicial and fim_dia(:dt_final) and a.dt_vinculacao_senha is not null and a.dt_inicio_atendimento is not null ) / (select count (a.cd_senha_gerada) contador from paciente_senha_fila a where obter_min_entre_datas(a.dt_geracao_senha, a.dt_primeira_chamada,1) > 0 and a.drt_geracao_senha between :dt_inicial and fim_dia(:dt_final) and a.dt_vinculacao_senha is not null and a.dt_inicio_atendimento is not null)) porcentagem Obrigado desde já!