Jump to content
lemanoel

buscar o registro mais antigo dentro de um join

Recommended Posts

oi, sou novo por aqui! desculpe se a pergunta é muito simples.... tenho duas tabelas:

TABELA: atendimento:
cd_item
data_atend
nome_cliente
TABELA: documento_clinico
cd_doc
cd_item
data_doc

 

o tenho a relação 1 atendimento para muitos docs. Quero criar um código que diz o número do atendimento e a data do doc mais antigo (apenas 1).  todas as tentativas duplicam o nome do cliente

Share this post


Link to post
Share on other sites

subselect com max é uma forma

 

algo assim
 

select *
from atendimento , documento_clinico
where atendimento.cd_item =, documento_clinico.cd_item
and data_cod = (select max(data_cod)
                from documento_clinico documento_clinico2
                where documento_clinico2.cd_doc = documento_clinico.cod_doc
                and documento_clinico2.cd_item = documento_clinico.cod_item)

 

Share this post


Link to post
Share on other sites

Olá Motta, obrigado pela ajuda...

tentei utilizar, mas com subquery o código não traz os atendimentos sem anamnese

 

pensei em um left join, mas não consegui...

Share this post


Link to post
Share on other sites

select *
from atendimento , documento_clinico
where atendimento.cd_item = documento_clinico.cd_item (+)
and ( (documento_clinico.cd_item is null)         
      or
      (data_cod = (select max(data_cod)
                   from documento_clinico documento_clinico2
                   where documento_clinico2.cd_doc = documento_clinico.cod_doc
                   and documento_clinico2.cd_item = documento_clinico.cod_item) )

Share this post


Link to post
Share on other sites

Create an account or sign in to comment

You need to be a member in order to leave a comment

Create an account

Sign up for a new account in our community. It's easy!

Register a new account

Sign in

Already have an account? Sign in here.

Sign In Now

  • Similar Content

    • By rafaelmoreira78
      Boa tarde!
      Estou querendo fazer um select a partir da seleção de um combobox. Nesse combobox o usuário escolhe o tipo de busca que ele quer. Se é por nome, por id, por data etc. E depois, exibe os dados nos campos. Porém, não estou conseguindo e não sei como resolver isso.
      public void consultar(){ String sql ="select * from tbcertificados where ?=?"; try{ pst=conexao.prepareStatement(sql); pst.setString(1,cbConsulta.getSelectedItem().toString()); pst.setString(2,txtBusca.getText()); rs=pst.executeQuery(); if (rs.next()){ lblID.setText(rs.getString(1)); txtNome.setText(rs.getString(2)); comboCursos.setSelectedItem(rs.getString(3)); txtData.setText(rs.getString(4)); txtCH.setText(rs.getString(5)); txtEmpresa.setText(rs.getString(6)); txtObs.setText(rs.getString(7)); }  
    • By asacap1000
      Galera me foi solicitado a criação de um servidor web, para disponibilizar serviços para os clientes. O que vocês recomendam?
      Tenho um servidor da DELL com windows 2016. Todo o desenvolvimento será em PHP, Javascript e companhia Ltda com conexão aos bancos de dados Mysql, SQL e ORACLE.
      Já temos um servidor que será desativado porém está utilizando uma versão muito antiga de PHP 5.4 e como base de instalação foi utilizado o WampServer. 
    • By biza
      Viva pessoal, 
      Estou com um problema na execução de um filtro aos dados vindos da base de dados, sera que alguém me pode ajudar, os dados estão vindo para a pagina através do método $_POST,
      que são seleccionados através do carregamento de uma dropbox chamada 'select-segment', desta forma se o utilizador apertar o botão 'action' ele executa o filtro caso não aperte ele executa a seleção sem filtros, será que alguém me pode ajudar...
      O erro devolvido é o seguinte:
      Fatal error::  Uncaught PDOException: SQLSTATE[HY093]: Invalid parameter number: parameter was not defined in /Applications/MAMP/htdocs/cargeWebsite/carList.php:46
      Stack trace:
      #0 /Applications/MAMP/htdocs/cargeWebsite/carList.php(46): PDOStatement->execute()
      #1 /Applications/MAMP/htdocs/cargeWebsite/index.php(155): include('/Applications/M...')
      #2 {main}
        thrown in 
      $query .='SELECT * FROM tbl_vehicle AS v INNER JOIN tbl_brands AS b ON v.brand_id = b.id_brand INNER JOIN tbl_images AS i ON v.id_vehicle = i.vehicle_id INNER JOIN tbl_fuel AS f ON v.fuel_id = f.id_fuel WHERE v.active = :active'; if(isset($_POST['action'])){ if(isset($_POST['select-segment']) && $_POST['select-segment']!=''){ $segment_filter = $_POST['select-segment']; $query.= 'AND segment_id IN ("'.$segment_filter.'")'; } $query .='ORDER BY v.last_inser ASC'; }else{ $query .='ORDER BY v.last_inser ASC'; } if($_POST['lenght'] = -1){ $query_1 = 'LIMIT :inicio, :limite'; } $dbh = createPDO(); $statement = $dbh->prepare($query); $statement->bindValue(':active',$intermedio); $statement->execute(); $number_filter_row = $statement->rowCount(); $statement = $dbh->prepare($query . $query_1); $statement->bindValue(':inicio',(int)$init, PDO::PARAM_INT); $statement->bindValue(':limite',(int)$limite, PDO::PARAM_INT); $statement->execute(); foreach ($result as $row){ }  
    • By r.guerra
      Salve galera, boa tarde a todos.
      estou tendo um problema que ainda nao consegui enxergar... faço uma consulta mysql que funciona normalmente no proprio ambiente(mysql) mas ao solicitar a exibição do campo via php gera nao exibe e me tras um alerta.
       
      ****codigo php
      function monta_avaliacao($cpf){
          $query = mysqli_query($_SESSION["conector"],"SELECT c.*, a. cliente AS clientes FROM clientes AS c INNER JOIN avaliacoes AS a ON c.id = a.cliente WHERE c.cpf='$cpf'");
           $dados = mysqli_fetch_assoc($query);
          print $dados['c.cpf'];
           }
       
      *****sainda no html
      Notice: Undefined index: c.cpf in C:\xampp\htdocs\acus\inclusoes\funcoes.php on line 29
      Notice: Undefined index: a.pe in C:\xampp\htdocs\acus\inclusoes\funcoes.php on line 30
       
      tenho um arquivo com as funções, e apenas mando os parametros.
    • By Omar~
      Primeiro a situação porque é difícil de explicar:
      Preciso realizar uma query em duas tabelas uma de pergunta (tabela_A) outra de resposta (tabela_B) usando o operador LIKE
      Ambas possuem uma coluna para o conteúdo, a tabela_A possui também uma coluna para título.
      A tabela_b é possui uma coluna para se relacionar com a tabela_A.
      Então digamos que na tabela_A tenho a seguinte questão:
       
      tabela_A
      Título: João foi ao mercado?
      Conteúdo (pergunta): Alguém sabe se ele comprou arroz?
      tabela_B
      Conteúdo (resposta): Eu vi que joão comprou feijão.
       
      A consulta então seria pela palavra chave joão que poderia está presente nas 2 tabelas e em 3 colunas.
      Tentei da seguinte forma montar a query:
      SELECT tabela_A.id, tabela_A.titulo, tabela_A.pergunta, tabela_B.relacao, tabela_B.resposta FROM tabela_A INNER JOIN tabela_B ON tabela_A.id = tabela_B.relacao WHERE tabela_B.resposta LIKE '%joão%' OR ( tabela_A.titulo LIKE '%joão%' OR tabela_A.pergunta LIKE '%joão%' ) Os problemas são se eu passar o comando ON para relacionar a resposta com a pergunta:
      A query não retorna se não houver dados na tabela_B.
      A query só retorna resultado se for buscado dados pela coluna resposta (mesmo existindo a palavra chave nas colunas citadas da tabela_A).
       
      A questão é:
      Como eu realizaria essa consulta?
      Se a palavra chave for encontrado na coluna titulo, pergunta ou resposta, de forma a que eu irei listar a coluna_A.
      Exemplo:
      Pesquisou por Maria, no título não tem, na pegunta não tem, na resposta tem.
      Pesquisou por Luiz, no título tem,  na pegunta não tem, na resposta não tem.
       
      Ou seja em qualquer um dos campos de ambas colunas que houver a chave de consulta deve retornar dados da coluna_A, mesmo que seja uma resposta na coluna_B.
       
      A forma que estou procedendo mesmo dando o resultado esperado não acho adequado acredito que uma query bastaria.
      Consultar tabela_A pelos campos tilulo e pergunta.
      Consultar tabela_B pelo campo resposta.
      Usar a função no PHP array_merge para unir ambos resultados em um único array.
      Remover os índices duplicados do array unificado.
×

Important Information

Ao usar o fórum, você concorda com nossos Terms of Use.