Select distinct

[size=14pt][font=comic sans ms]Boa tarde pessoal.
Tenho uma consulta que está me retornando os seguintes dados:[/font][/size]


[size=14pt][font=comic sans ms]Esses são dos dados de minha tabela completa.[/font][/size]
[size=14pt][font=comic sans ms]Mas ao utilizar o comando Select Distinct o retorno foi esse.[/font][/size]

[size=14pt][font=comic sans ms][size=14pt][size=14pt]Mas na verdade estava precisando retornar os dados que estão marcados em vermelho. Que seria de cada cliente o último dado inserido na tabela conforme a data de inserção.

[size=14pt][font=comic sans ms]Após ir e vir no manual consegui algum processo mas a no campo data data ainda não está trazendo a última data inserida no Banco de Dados.[/font][/size]
Alguém saberia me dar uma dica de como fazer isso?[/size][/size][/font][/size]

Onde está o join entre as 2 tabelas ?

Falta inner join, e eu colocaria group by para não deixar duplicar os registros, não sei como esta essa modelagem, mas pode ser que a duplicação, seja somente pela falta do inner join.

Assim, acho que já resolve:

SELECT distinct i.status,
p.id_controle_peso,
p.data,
p.peso,
p.disgnostigo,
p.altura,
p.id_idoso
FROM controle_peso p
inner join dados_idoso i on p.id_idoso = i.id_idoso
where i.status = ‘1’

sem saber, é claro, como está sua estrutura.

wanderlanlima

Faz a ligação entre as tabelas “Join” utilizando o sql builder. é tiro e queda rsrs

Caro Régis Matos, não sou eu é o ticelso. rs

Ops, foi mal, desculpa rsrs

Ticelso, deu certo ai ? rsrs

[font=comic sans ms][size=14pt]Boa noite pessoal…
Obrigado a todos pelas dicas.
Com a dica de vocês cheguei nesse resultado.

Vejam as tabelas do meu Banco de Dados.

Vejam utilizando o GROUP BY controle_peso.ID_IDOSO

Pórem ainda não é o que preciso.

O que eu quero é que os dados assinalados com retângulo vermelho seja meu resultado de pesquisa.
Preciso pegar a data mais recente inserida no meu Banco de dados sem repetir o ID_IDOSO.
Minha estrutura está toda demostrada nas figuras.[/size][/font]

Tente usar a data na clausula WHERE para filtrar somente pela maior data da tabela.

Exemplo:

SELECT
  dados_idoso.STATUS,
  controle_peso.ID_CONTROLE_PESO,
  controle_peso.DATA,
   controle_peso.DIAGNOSTICO,
   controle_peso.ALTURA,
   controle_peso.ID_IDOSO
FROM
   controle_peso INNER JOIN dados_idoso ON controle_peso.ID_IDOSO = dados_idoso.ID_IDOSO
WHERE
   (dados_idoso.STATUS = '1') AND (controle_pedo.DATA = (SELECT MAX(controle_pedo.DATA) FROM controle_peso))

Escrevi bem rápido, então verifique se a construção do comando não tem erro de digitação ou sintaxe.

[size=14pt][/size][font=comic sans ms]Olá pessoal está quase lá acho eu…

Agora está trazendo a maior data é isso que eu quero só que tem que pegar a maior data de cada cliente.

Para facilitar vou colocar o código abaixo:

SELECT
controle_peso.ID_IDOSO,
controle_peso.ID_CONTROLE_PESO,
controle_peso.DATA,
controle_peso.PESO,
controle_peso.DIAGNOSTIGO,
controle_peso.ALTURA,
dados_idoso.STATUS
FROM
controle_peso INNER JOIN dados_idoso ON controle_peso.ID_IDOSO = dados_idoso.ID_IDOSO
WHERE
(dados_idoso.STATUS = ‘1’) AND (controle_peso.DATA = (SELECT MAX(controle_peso.DATA)
FROM
controle_peso))

[/font]

Não entendi!!!

Esta query vai retornar todos os registros com a maior data. No seu exemplo, presumo que a maior data é 2011-06-03. Tem mais de um registro com esta data no banco?

[size=18pt][/size][font=comic sans ms]Sim claro a maior data é essa mas o resultado de que preciso está sinalizado com o retângulo vermelho.

Refiz novamente veja o que está em amarelo seu script retornou porém preciso que retorne também o verde ou seja ( amarelo + verde ).

Que resumindo é a maior data de entrada de cada cliente.

Entendido?[/font]

[size=18pt][/size][font=comic sans ms]FINALMENTE APÓS MAIS DE 72H AGORA SIM DEU CERTO.

OBRIGADO A TODOS COLEGAS PELA AJUDA.

Vejam abaixo o resultado.[/font]

Parabens ticelso!!!

Como você fez?