Publicidade

josePeixoto

Members
  • Total de itens

    15
  • Registro em

  • Última visita

Reputação

0 Comum

Sobre josePeixoto

  • Data de Nascimento 26-12-1992

Informações Pessoais

  • Sexo
    Masculino
  1. Olá, boa noite. Eu gostaria de saber como eu chamo uma função dentro da cláusula WHERE em jdbc. Por exemplo: select * from tabela1 td1 WHERE obter_id(tb1.nr_sequencia) between in :dt_ini and :dt_fim; Como faço pra que o jdbc reconheça essa função como filtro? Obrigado desde já!
  2. Obrigado. Resolvi criando um objeto e colocando a lista dentro dele.
  3. Olá à todos! Eu estou com um json exibindo assim: [ { "CRM": "7618", "NaturezaDaOp": "1", "DataDeEmissao": "jun 16, 2017", "OptanteSimplesNacional": "2", "IncentivadorCultural": "2", "Status": "2", "Servico": { ... } ] E gostaria que ele exibisse com nfs em cima, tipo: nfs: { "CRM": "7618", "NaturezaDaOp": "1", "DataDeEmissao": "jun 16, 2017", "OptanteSimplesNacional": "2", "IncentivadorCultural": "2", "Status": "2", "Servico": { .... } Alguém sabe de algum comando ou onde, no servlet, eu coloco isso? (Segue o servlet abaixo) @Override protected void doPost(HttpServletRequest req, HttpServletResponse resp) throws ServletException, IOException { List<NotaFiscal> nf = nfs.retornaTodasNF(); Gson gson = new GsonBuilder().setPrettyPrinting().create(); String json = gson.toJson(nf); ServletUtil.writerJSON(resp, json); } Obrigado desde já!
  4. SELECT DISTINCT obter_nome_estabelecimento(b.cd_estabelecimento) estabelecimento, TO_CHAR(a.DT_AGENDA,'dd/mm/yyyy') dia, initcap(b.DS_CURTA) agenda, tasy.obter_desc_espec_agenda(b.cd_especialidade) especialidade, COUNT(DISTINCT a.nm_paciente) total_pacientes, 0 total_pacientes_atendidos FROM tasy.agenda_consulta a, tasy.agenda b WHERE a.cd_agenda = b.cd_agenda AND b.ie_situacao = 'A' and trunc(a.dt_agenda) between :dt_inicial and :dt_final and ((b.CD_ESTABELECIMENTO = :cd_estab) or (:cd_estab = 0)) AND a.nm_paciente IS NOT NULL AND a.IE_STATUS_AGENDA <> 'C' and a.cd_agenda = 7216 GROUP BY TO_CHAR(a.DT_AGENDA,'dd/mm/yyyy'), b.ds_curta, tasy.obter_desc_espec_agenda(b.cd_especialidade), obter_nome_estabelecimento(b.cd_estabelecimento) HAVING COUNT(DISTINCT a.nm_paciente) > :total_paciente union all SELECT DISTINCT obter_nome_estabelecimento(b.cd_estabelecimento) estabelecimento, TO_CHAR(a.DT_AGENDA,'dd/mm/yyyy') dia, initcap(b.DS_CURTA) agenda, tasy.obter_desc_espec_agenda(b.cd_especialidade) especialidade, 0 atendidos, COUNT(DISTINCT a.nm_paciente) total_pacientes_atendidos FROM tasy.agenda_consulta a, tasy.agenda b WHERE a.cd_agenda = b.cd_agenda AND b.ie_situacao = 'A' and trunc(a.dt_agenda) between :dt_inicial and :dt_final and ((b.CD_ESTABELECIMENTO = :cd_estab) or (:cd_estab = 0)) AND a.nm_paciente IS NOT NULL AND a.IE_STATUS_AGENDA = 'E' and a.cd_agenda = 7216 GROUP BY TO_CHAR(a.DT_AGENDA,'dd/mm/yyyy'), b.ds_curta, tasy.obter_desc_espec_agenda(b.cd_especialidade), obter_nome_estabelecimento(b.cd_estabelecimento) HAVING COUNT(DISTINCT a.nm_paciente) > :total_paciente Está exibindo como resultado duas linhas. Como agrupar para exibir 1 linha com as colunas "total_pacientes" e "total_pacientes_atendidos"
  5. Olá a todos. Estou com um problema em converter a data do java para o formato da data do oracle. Eis o meu código: SimpleDateFormat sdf = new SimpleDateFormat("dd/mm/yyyy"); String dt_ini_orc = sdf.format(dt_ini); String dt_fim_orc = sdf.format(dt_fim); List<NotaFiscal> nf = nfs.retornaTodasNfPorData(dt_ini_orc, dt_fim_orc); E a função que pega é: public List<NotaFiscal> retornaTodasNfPorData(String dt_ini, String dt_fim) throws SQLException { List<NotaFiscal> lnf = new ArrayList<NotaFiscal>(); Connection conn = null; PreparedStatement stmt = null; try { conn = getConnection(); stmt = conn.prepareStatement( "select NR_SEQUENCIA, CD_NATUREZA_OPERACAO, cd_cgc_emitente, nr_sequencia, dt_emissao, " + "vl_total_nota from nota_fiscal " + "WHERE dt_emissao between to_date(?, 'dd/mm/yyyy') and to_date(?, 'dd/mm/yyyy')"); stmt.setString(1, dt_ini); stmt.setString(2, dt_fim); ResultSet rs = stmt.executeQuery(); while (rs.next()) { NotaFiscal nf = createNF(rs, conn); lnf.add(nf); } rs.close(); . . . Dá o seguinte erro: java.lang.IllegalArgumentException: Cannot format given Object as a Date at java.text.DateFormat.format(Unknown Source) Alguém pode me ajudar informando onde está errado? Obrigado desde já :D
  6. 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.
  7. 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á!!!
  8. 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!
  9. Isso, mas as condições do select externo (where's) da tabela1 tem que estar tbm dentro desse select que tem a tabela2?
  10. 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á.
  11. 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!
  12. 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á!
  13. 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á!
  14. 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á.
  15. 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á!