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

Outer join ...

Se tiver tempo amanhã posto.

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 rjlfurtado
      Segue abaixo o exemplo de como seria feito em SQL:
      CREATE TABLE tabela ( campo1 DOUBLE, campo2 DOUBLE, divisao DOUBLE AS (campo1/campo2) ); Agora eu preciso criar uma migração no Laravel 6, segue exemplo abaixo:
      $table->integer('qtd_saida'); $table->decimal('valor_uni', 8, 2); $table->double('valor_total')->as(qtd_saida * valor_uni);  
    • By Maccio
      Estou tentando criar um relatório com total de horas trabalhadas do funcionários por dia, tenho uma tabela FRQ_digitacao onde eu tenho os dados para calcular o total de horas e se tiver com zero horas eu digo a ocorrência do mesmo, ex: falta, Folga, etc. Quero também colocar a informação de férias quando o mesmo estiver de férias, porém quando ele está de férias a tabela FRQ_digitacao fica sem registros nos dias de Férias, assim tenho que buscar a informação na tabela FLP_Ferias onde é lá que diz o gozoinicial e gozofinal, porém não estou conseguindo fazer essa comparação já que na tabela FRQ_digitacao nesses dias de ferias o funcionário fica sem registro.
       
      select T.CODINTFUNC, f.CHAPAFUNC, LISTAGG( CASE WHEN T.NORMALDIGIT=0 THEN OC.DESCMAPAOCORR WHEN t.DTDIGIT IS NULL THEN 'dt.dtdigit' --when dt.dtdigit between fe.inicio and fe.fim --then 'FER' ELSE to_char((TRUNC(T.NORMALDIGIT)+TRUNC(t.extradigit)+TRUNC(t.extranotdigit))+ ((trunc(((T.NORMALDIGIT-trunc(T.NORMALDIGIT))+(t.extradigit-trunc(t.extradigit))+(t.extranotdigit-trunc(t.extranotdigit)))/0.60))+ mod(((T.NORMALDIGIT - trunc(T.NORMALDIGIT))+(t.extradigit - trunc(t.extradigit))+(t.extranotdigit - trunc(t.extranotdigit))),0.60)),'FM99999D90', 'nls_numeric_characters=''.,''' ) END, ' ') within group (order by t.dtdigit) horas, MAX(FE.INICIO), MAX(FE.FIM ) from vw_funcionarios f, FRQ_DIGITACAOMOVIMENTO O, FRQ_OCORRENCIA OC, frq_digitacao t, (select f.codintfunc INT, f.chapafunc, max(fe.dtcompetfer)COMPET, MAX(fe.gozoinifer) INICIO, MAX(fe.Gozofinfer) FIM from flp_ferias fe, flp_funcionarios f where f.codintfunc=fe.codintfunc AND F.SITUACAOFUNC='A' and f.codigoempresa=1 AND FE.STATUSFERIAS='N' group by f.chapafunc, f.codintfunc) FE, (select t.DTDIGIT from frq_digitacao t WHERE t.dtdigit between '01-NOV-2019' AND '20-NOV-2019' group by t.dtdigit) DT where DT.DTDIGIT(+)=T.dtdigit and fe.INT=t.codintfunc and f.codintfunc=t.codintfunc AND F.CODIGOEMPRESA=1 and O.CODINTFUNC=T.CODINTFUNC AND T.DTDIGIT=O.DTDIGIT AND O.CODOCORR=OC.CODOCORR AND dt.dtdigit BETWEEN '01-NOV-2019' AND '20-NOV-2019' -- AND F.CODDEPTO BETWEEN 15 AND 15 AND O.STATUSDIGIT='N' and o.iddigit = (select max(p.iddigit) from frq_digitacaomovimento p where o.codintfunc=p.codintfunc and o.dtdigit=p.dtdigit AND P.STATUSDIGIT='N' and p.dtdigit between '01-NOV-2019' AND '20-NOV-2019') group by f.CHAPAFUNC, T.CODINTFUNC  



    • By malkarater
      boa tarde a todos,
       
      eu tenho uma consulta e nela preciso criar uma critica onde me traga endereço de clientes do tipo entrega.
      obs: o campo endereco é o onde está cadastrado os dois endereço
       
      o ranque usei para que pegue apenas a ultima compra do cliente.
       
      poderiam me ajudar?
       
      abaixo segue meu codigo:

       
       
    • By leonidas.assuncao
      Bom dia!
       
      Peço ajuda para um projeto escolar, vou descrever a função do script:
       
      > Banco de dados prévio contendo uma relação de nomes de empresas da internet e seus respectivos sites.
       
      >Função 1 do script:
       
      Caixa de seleção com os nomes das empresas. Após selecionar, o usuário clica no botão "acessar site" e será aberto uma nova guia com o endereço do site da empresa.
       
      Função 2 do script:
      Caixa de texto para digitação dos nomes das empresa com autocompletar, o usuário inicia a digitação do nome, o sistema retorna como as palavras até fechar o nome da empresa (igual ao buscador do google), o usuário clica no botão "acessar site" e será aberto uma nova guia com o endereço do site da empresa.
       
      Desde já agradeço!
       
    • By ronaldobgomes
      Boa tarde galera
      Tenho um problema que preciso resolver, seguinte:
      tenho um banco de dados e nele contem uma tabela chamada agencia, ela esta funcionando legal mas NÃO consegui montar um filtro legal pra ela,
      a tabela é de agencias bancarias,  chama-se Bancoage, os campos de pesquisa são Bancod e Agenum
      o editbanco.text busca só  banco , exemplo: '237'.O editagencia.text busca só agencias, exemplo: '0522' e os dois edit teria que pesquisar banco agencia, 
      banco - agencia  - 
      237         0522
      este comando eu quero usar nas pesquisas e também pra verificar se ja existe a agencia cadastrada.
      meu filtro só faz em um edit só, me ajudem por favor.
      Uso UniSql, delphi 10.3 e que fique claro eu estou desenvolvendo um programa para empresas de cobrancas e esta base alimenta o cadastro de cheques
       
      Valew!!!!!
×

Important Information

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