Ir para conteúdo
EliseuFirmino

Média Anual

Recommended Posts

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?

 

Compartilhar este post


Link para o post
Compartilhar em outros sites

/count(to_char(a.dt_entrada,'yyyymm'))

No lugar do 12.

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

  • Conteúdo Similar

    • Por Jefferson andre
      Ola, estou criando um contador de acessos diario mas nao funciona, a tabela tem o campo data no formato date e o campo contador int(10)
       
      A ideia eh verificar a data e se nao existir incluir na tabela, se existir adicionar ao contador
       
      Parece que o erro esta no formato da data, nem manualmente consigo incluir na tabela via localhost ou na hospedagem da google
       
      Agradeço qualquer ajuda
       
      <?php // fazendo uma conexão com o banco de dados include("conexao.php"); // grava a data atual em uma variavel date_default_timezone_set('America/Sao_Paulo'); $date = date('d-m-Y'); //$sql = "SELECT codigo FROM contador"; $resultado = $arquivo->query("SELECT data,contador FROM contador_diario WHERE data = '$date'"); if (mysqli_num_rows($resultado)== true){ // registro ja existe } else { // resultado nao encontrado entao inserir $sql = "INSERT INTO contador_diario ('data', 'contador') VALUES ('$date', '1')"; if ($arquivo->query($sql) == TRUE) { echo "Data cadastrada com sucesso"; } else { echo "Erro: " . $sql . "<br>" . $arquivo->error; } } // refaz a pesquisa para registrar o contador $resultado = $arquivo->query("SELECT data,contador FROM contador_diario WHERE data = '$date'"); // igualar a array a uma variavel $linha=mysqli_fetch_array($resultado); $cod_2 = $linha["contador"]+1; // lista a variavel //echo "<font face='Arial'><span class='style14'>$cod_2</span></font>"; $sql = "UPDATE contador_diario SET contador=$cod_2"; if ($arquivo->query($sql) === TRUE) { // echo "Alteração efetuada com sucesso"; } else { // echo "Erro alterando o contador de visitas diario" . mysqli_error($arquivo); } // fecha a conexao mysqli_close($arquivo); ?>  
    • Por AlexandreHenrique
      Olá 
      tenho uma função JS para mudar valor de atributos de uma imagem.
      A imagem é essa:
      <img src="capa.jpg"  data-desc="2018 - Aventura" alt="titulo do filme" onclick="teste(this,2);" id="video" />  A função:
      function teste(arg,p){ var pos = p; document.getElementById('video').src="novacapa.jpg"; // muda src document.getElementById('video').alt="Titulo do novo video"; // muda alt     document.getElementById('video').attr('data-desc', 'valor a atribuir'); // ??? } A função muda o "src" e "alt" mas não consigo mudar o valor do atributo 'data-desc", como faço isso?
      Essa é a linha em questão: 
      document.getElementById('video').attr('data-desc', 'valor a atribuir'); 
       
       
    • Por isaque_cb2
      Boa noite, estou postando qui por que pesquisei e não achei nada que ajudasse... bem, criei um banco de dados para armazenar meus projetos e carrega-los dinamicamente com o php, deu certo, mas quando tem alguma acentuação no texto ele retorna "�"... 
      ~Grato desde Já~
    • Por Pedro Terencio
      votar contrafavorita   Bom dia galera, estou com uma duvida sobre manipulação de data. Preciso pegar um valor (dado pelo usuario) e transformar este valor em dia do mês.
       
      Exemplo : 
      $Valor_Usuario = 30;
      $Data = 12/10/2018;
      $Resultado = 30/10/2018;
       
      O que estou buscando fazer é, uma rotina de gastos, então o usuario me informa um dia fixo de gasto, (Todo dia 30 irei gastar R$50) e o sistema todo dia 30 irá subtrair R$50 da conta. O que me gera outra duvida...
       
      Depois da manipulação da data como fazer esse checking da data? (Se hoje é dia 30 ou não // Para saber quando subtrair os R$ 50)
    • Por maal0n
      Bom dia pessoal, sou iniciante no php e estou com um problema, alguem consegue me ajudar...
       
      O codigo abaixo tem a função de mostrar todos os vencimentos da semana para pagamento de mensalidades... só que ele encontra o dia do sabado(ultimo dia da semana) e mostra os 6 dias anteriores a ele... o problema acontece quando o sabado cai no dia 1 ou 2 do mes seguinte... ai ele vai calcular dia 1 menos 6... e nao vai me gerar resultados nenhum... conseguiram entender? alguem consegue me ajudar nisso ?
       
      segue meu codigo..
       
       
       
      <?php $seleciona = mysql_query("SELECT anoselecionado FROM anoselecionado LIMIT 1"); while($ln = mysql_fetch_array($seleciona)){ $anoselecionado = $ln['anoselecionado']; } ?> <?php $dataatual = date('d/m/y'); $partes = explode("/", $dataatual); $diaatual = $partes[0]; $mesatual = $partes[1]; $anoatual = "20".$partes[2]; if ($mesatual == "1"){$essemes = 'jan';}; if ($mesatual == "2"){$essemes = 'fev';}; if ($mesatual == "3"){$essemes = 'mar';}; if ($mesatual == "4"){$essemes = 'abr';}; if ($mesatual == "5"){$essemes = 'mai';}; if ($mesatual == "6"){$essemes = 'jun';}; if ($mesatual == "7"){$essemes = 'jul';}; if ($mesatual == "8"){$essemes = 'ago';}; if ($mesatual == "9"){$essemes = 'setembro';}; if ($mesatual == "10"){$essemes = 'outubro';}; if ($mesatual == "11"){$essemes = 'nov';}; if ($mesatual == "12"){$essemes = 'dez';}; $sabado = 6; //sabado = 6º dia = fim da semana. $dia_atual=date('w'); //pego o dia atual $dias_que_faltam_para_o_sabado = $sabado - $dia_atual; $inicio = strtotime("-$dia_atual days"); $fim = strtotime("+$dias_que_faltam_para_o_sabado days"); $primdiasemana = date('d',$inicio); //data inicial $ultmodiasemana = date('d',$fim); //data final $seleciona = mysql_query("SELECT * FROM mensalidades WHERE (data_pagamento BETWEEN '".$primdiasemana."' and '".$ultmodiasemana."') and ano = ".$anoselecionado." and $essemes = 0 ORDER by id DESC"); $conta = mysql_num_rows($seleciona); if($conta <= 0){ echo "<center><div><h3>Não existem mensalidades pendentes com vencimento esta semana</h3></div></center>"; }else{ echo " <table class='table table-bordered' id='tabela-mensalidades'> <thead> <tr style='backgroud-color: #2D335B'> <th style='width: 200px'>Aluno</th> <th>Vencimento</th> <th>Status</th> <th>Serviço</th> <th>Valor</th> </tr> </thead> "; while($ln = mysql_fetch_array($seleciona)){ $id = $ln['id']; $clientes_id = $ln['clientes_id']; $servico_id = $ln['servico_id']; ?>  
×

Informação importante

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