Ir para conteúdo
    • João Batista Neto

      iMasters InterCon 2017   10-10-2017

      Ainda dá tempo de se inscrever no iMasters InterCon 2017, o maior evento dev do Brasil!  

josePeixoto

Members
  • Total de itens

    17
  • Registro em

  • Última visita

Tudo que josePeixoto postou

  1. Concatenação de informações

    Obrigado pela resposta! Resolvi com algo mais simplificado. Simplesmente assim, rtrim(xmlagg(xmlelement(e,col3,',').extract('//text()')),';') Assim, ele concatenou de boa. Obrigado :)
  2. Concatenação de informações

    Olá, bom dia! Estou com um problema em uma consulta que está saindo as mesmas informações mas com uma chave diferente. Tipo: col1 col2 col3 x y r x y r' como eu faço pra concatenar e ficar: col1 col2 col3 x y r,r' Agradeço desde já pela atenção! :D
  3. Funções no WHERE em JDBC

    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á!
  4. Título aos objetos exibidos em JSON

    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á!
  5. Título aos objetos exibidos em JSON

    Obrigado. Resolvi criando um objeto e colocando a lista dentro dele.
  6. Agrupar dados na consulta em oracle

    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"
  7. Converter data do java para data Oracle

    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
  8. 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á!!!
  9. Consultas retornando os mesmos valors

    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.
  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. Selecionar chave primaria de uma tabela dentro de um case ou if

    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!
  12. Selecionar chave primaria de uma tabela dentro de um case ou if

    Isso, mas as condições do select externo (where's) da tabela1 tem que estar tbm dentro desse select que tem a tabela2?
  13. Plano de execução no oracle

    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!
  14. Condição dentro do Where

    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á!
  15. Erro 'Group By'

    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á!
  16. Erro função

    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á.
  17. Otimização de Consulta

    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á!
×

Informação importante

Ao usar o fórum, você concorda com nossos Termos e condições.

Este projeto é mantido e patrocinado pelas empresas:
Hospedado por: