Ir para conteúdo
  • 0
josePeixoto

Consultas retornando os mesmos valors

Pergunta

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

Compartilhar este post


Link para o post
Compartilhar em outros sites

1 resposta a esta questão

Recommended Posts

  • 0

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.

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 sadamkim
      Pessoal,  me deparei com um problema.
      Tenho uma Tabela, onde fica armazenada as transações dos clientes.
      Cada transação tem vários registros com o campo STATUS.
       
      Preciso fazer um MAX, para pegar a ultima transação por data, e assim saber qual foi o status da mesma.
      Mas ao utilizar o MAX e selecionar o campo STATUS ele me traz todos os registro, porque o mesmo não pode agrupar por status, por conter valores diferentes.
      É possível criar alguma forma de selecionar no meu caso a ultima transação por data (MAX) e trazer o campo status?
      Seja com alguma procedure, ou outra função do ORACLE.


    • Por MateusDuarte
      Podem me ajudar? Sou novato em PHP e estou precisando de uma ajudinha.
      Tenho 2 tabelas no banco: filmes e generos.
      Faço o cadastro individual de todos os generos na tabela generos, e no cadastro de filmes eu puxo todos os generos por um multiple select. Até ai tudo certo, ele salva no banco de dados assim:
      genero1, genero2, genero3.
       
      Porém na hora de mostrar eu não sei separar eles das virgulas.
      Segue meu SELECT simples:
      <main class="content"> <?php $sql = "SELECT * FROM genero ORDER BY RAND()"; $result = $connect->query($sql); if($result->num_rows > 0) { while($row = $result->fetch_assoc()) { $teste = $row["id_genero"]; ?> <section class="panel"> <h2><a id="links-generos" href="generos-filmes.php?id=<?php echo $row['id_genero'];?>"><?php echo $row["descricao"];?></a></h2> <div class="recentslider"> <div class="swiper-container"> <div class="swiper-wrapper"> <?php $sql_t = "SELECT * FROM filmes WHERE id_genero = ".$teste." ORDER BY RAND()"; $result_t = $connect->query($sql_t); if($result_t->num_rows > 0) { while($row_t = $result_t->fetch_assoc()) { ?> <div class="swiper-slide"><?php echo "<a href='single-filmes.php?id=".$row_t['id_filme']."&genero=".$row_t['id_genero']."';>";?><img src="capa/<?php echo $row_t["capa_filme"];?>"><h3 class="hometitle"><?php echo $row_t["titulo_filme"];?></h3></a></div> <?php }} else { echo "0 results"; } ?> </div> <div class="nextdirection recent-next"><img src="img/right-arrow.svg"> </div> <div class="leftdirection recent-prev"><img src="img/left-arrow.svg"> </div> </div> </div> </section> <?php }} else { echo "0 results"; } ?> </main> (Desculpa se não ficou alinhado, só copiei e colei.)

      Reparem que primeiro dou um select na tabela genero, e salvo o ID dela em uma variavel, e depois vou um select na tabela filmes usando a variavel que salvei antes como uma condição.
      Porem na tabela filmes, os generos estão salvos separados por virgula. Como consigo fazer um select separando ela das virgulas?
       
    • Por Jonatas Provido
      Pessoal veja se consegue me ajudar 
      Hoje tenho uma  TABELA1 e TABELA2
      Tabela =  TABELA1
      Colunas = NCM
                         IPOS_FEDER
                         IPOS_MUNIC
                         IPOS_GLOBAL
                         IPOS_ESTAD
      A Tabela2 onde esta com as informações novas que precisa ser atualizado a Tabela1
      TABELA = TABELA2
      COLUNAS = NCM
                            FEDERAL
                            MUNICIP
                            GLOBAL
                            ESTADU
                       
      Preciso que compare o coluna NCM as demais coluna se diferente valor tabela 2 atualiza a tabela1 
       
      já li vários post porem acho que a forma que estou pesquisando não seja coerente. 
      Obrigado! pela atenção

       
    • Por alekaspary
      Bom dia.
      Preciso de ajuda para montar uma view com mostre os reservatórios de modo hierárquico.
      Tenho a seguinte tabela.
       
      Reservatorios(
      -id
      -nome
      -pai_id
      )
       
      cada reservatório tem como pai outro reservatório, e gostaria de saber qual a melhor forma de mostrar isso em uma treeview por exemplo, sendo que cada reservatório fique dentro de seu 'pai'. OBS: não existe limite de níveis.
       
    • Por luizfabianochaves
      Boa tarde..
      Estou com um problema aqui, preciso fazer um calculo mas não tenho ideia de como fazer... vou ver se consigo explicar..
      na empresa temos 60 representantes cada um tem uma meta de vendas diferente a ser cumprida mensalmente, quando ele não bate a meta, o saldo tem que ser diluíido nos meses seguintes..
       
      exemplo: representante 01 teria que vender 1.000 em janeiro. vendeu 900 esses 100 reais que faltaram, teriam que ir pra os outros meses.. 100/11=9,09 então a meta dos outros meses seria de 1009,90.. conseguiram entender?
×

Informação importante

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