Publicidade

Entre para seguir isso  
Seguidores 0
josePeixoto

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

0

Compartilhar este post


Link para o post
Compartilhar em outros sites

tente

select ((case when obter_min_entre_datas(a.dt_geracao_senha,
                                         a.dt_primeira_chamada,1) > 15
               then a.cd_senha_gerada else null end) /
         count(a.cd_senha_gerada)) porcentagem      
  from paciente_senha_fila a
  where obter_min_entre_datas(a.dt_geracao_senha,
                              a.dt_primeira_chamada,1) > 0
  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
0

Compartilhar este post


Link para o post
Compartilhar em outros sites

Crie uma conta ou entre para comentar

Você precisar ser um membro para fazer um comentário

Criar uma conta

Crie uma nova conta em nossa comunidade. É fácil!


Crie uma nova conta

Entrar

Já tem uma conta? Faça o login.


Entrar Agora
Entre para seguir isso  
Seguidores 0

  • Próximos Eventos

  • Conteúdo Similar

    • Por netocazuza
      Boa noite a todos. O meu sistema está gravando os dados num arquivo txt, pois é algo simples e experimental por enquanto. A página que estou postando o código na sequência, lista todos os registros desse arquivo txt, porém eu gostaria de saber se também posso fazer consultas específicas e qual a sintaxe. Vejam o código: Ele está listando todas as apostas feitas. Na tela anterior, a pessoa digita num textbox um número de 0 a 100, e mais algumas informações, clica em gravar, e as informações são gravadas nesse arquivo apostas.txt. Esse arquivo abaixo, lista tudo isso na tela, no formato txt mesmo. Porém lista todas as informações, e eu queria que listasse de acordo com alguns parâmetros. Por exemplo: listar os dados de todos que escolheram o número 88, ou listar todos os prefixos 11, e por aí vai. Cada item desses que citei, são variáveis do sistema.
      <?php // cria nome de variavel abreviado $DOCUMENT_ROOT = $_SERVER['DOCUMENT_ROOT']; ?> <html> <head> <title>Apostas feitas</title> </head> <body bgcolor="#00C2F7"> <h2>Apostas</h2> <?php @ $fp = @fopen('apostas.txt','r'); if (!$fp) { echo '<p><strong> Número de pedidos.' .'Por favor, tente novamente mais tarde.</strong></p>'; exit; } while (!feof($fp)) { $order= fgets($fp, 999); echo $order.'<br />'; } fclose($fp); ?> </body> </html>  
    • Por Caio Dom
      Boa tarde, estou com problema em mostrar dados do banco. Estou dando um SELECT no banco para mostrar os dados na tela, porém quando eu entro no site, não aparece nenhum dado, só vai mostrar alguma coisa se eu atualizar a página, porém o cliente não vai saber que tem que atualizar pra aparecer os dados, não sei como resolver.
      Segue o código abaixo:
       
      Essa função esta no Index.php
      $(document).ready(function(){
              $('#chat').load('busca.php');
              $("#userArea").submit(function(){
                  $.post('index.php', $('#userArea').serialize(),function(data){
                      $("#msg_cliente").val("");
                      $("#chat").append('<div>'+data+'</div>');
                  });
                  return false;
              });
          });
       
      Essa esta no Busca.php
      $result = mysql_query("SELECT textoUser, textoBot FROM mensagem WHERE IP = '$ip' AND data = '$date'");
          while($row = mysql_fetch_array($result)){
              echo "<p class='them'>".$row['textoUser']."</p>";
              echo "<br /><br /><br />";
              echo "<p class='me'>".$row['textoBot']."</p>";
              echo "<br /><br /><br />";
          }
      mysql_close($link);
    • Por wneo
      Olá!
      Estou testando um recurso de template php(abstrair layout html do programa php).
      Tenho dúvida em como utilizar o while nessa estrutura:
       
      index.php: <?php include_once("../../../model/classes/template.class.php"); require_once("../../../model/conecta/conecta.php"); $sql = "SELECT * FROM tabela"; $rs = mysql_query($sql); while($row = mysql_fetch_array($rs)){ $id = $row['id']; $nome = $row['nome']; }//end while rs /** * Creates a new template for the user's profile. */ $profile = new Template("../tpl/index.tpl"); $profile->set("nome", $nome); /** * Outputs the page with the user's profile. */ echo $profile->output(); ?> index.tpl:
      <meta charset="utf-8"> <div class="choose_box"> <ul> <!-- O form estaria no while --> <form class=""> <p> <span class="icone icon-archive2"></span> <span class="big_text">[@nome]</span> </p> </form> <script> $(document).ready(function(){ /* ... */ /* ... */ });//end doc </script> </ul> </div><!-- /choose_box--> Preciso que o form esteja dentro do while, para que dessa forma tenhamos como resultado a visualização de todos os registros dessa tabela nessa disposição.
       
      Tentei colocar nessa parte do php, assim:
      while($row = mysql_fetch_array($rs)){ $id = $row['id']; $nome = $row['nome']; $profile = new Template("../tpl/index.tpl"); $profile->set("nome", $nome); }//end while rs Mas das duas formas apenas aparece 1registro... gostaria que todos fossem listados nesse while, que seria em torno do form..
      Alguém sabe como?
    • Por novoAquiNoForum
      Olá Pessoal,
       
      Preciso selecionar um select multiple com valores retornados do banco. Os valores retornados são os IDs separados por vírgula, exemplo: 1,2,3,4,5
       
      Geralmente quando é somente um valor eu faço desta forma:
      $("#combo_area").val(36).trigger('change'); No select multiple, se eu fizer desta maneira manualmente dá certo:
      $("#combo_area").val(["5","4"]).trigger('change'); Porém estou com dificuldades de colocar desta forma. Tentei fazer um split, como exemplo:
      var area = ""; var arr_area = id_area.split(','); for (i = 0; i < arr_area.length; i++) { area += '"'+arr_area[i]+'", '; valor = area.substr(0,(area.length - 2)); }; $("#combo_area").val([valor]).trigger('change'); Mas não deu certo, alguém pode ajudar aí?
    • Por rodrigofv1994
      -- Tabela pedido criada com uma chave estrangeira aluno create table pedido( id int not null auto_increment primary key, datahora datetime not null, aluno int not null, constraint fk_aluno foreign key(aluno) references aluno(id) ); insert into pedido values (default,'2010-04-15',2); insert into pedido values (default,'2010-04-15',2); insert into pedido values (default,'2010-04-16',3); insert into pedido values (default,'2010-04-14',4); insert into pedido values (default,'2010-04-18',5); insert into pedido values (default,'2010-04-19',6); insert into pedido values (default,'2010-04-20',6); -- Exibir informações da tabela pedidos os pedidos realizados entre 15/04/2010 e 18/04/2010 (só sei exibir com a data maior ou menor) select * from pedido where data > '2010-04-15'; select * from pedido where data < '2010-04-18';