[RESOLVIDO] Consulta Mysql Select

Olá, não estou conseguindo fazer uma consulta especifica, gostaria que se caso houver alguma revisão de determinado projeto ou seja uma revisão com o id_projeto, ao invés do código data e grd do projeto fosse exibido os da tabela revisão, porém queria que todos os projetos na mesma consulta, os que não tem revisão normal, e os que tem revisão com código data e grd alterados, no caso mostraria os dados da revisão mais recente referente aquele id_projeto.
Alguém poderia dar uma luz de como fazer esse select?

Case não funciona?

A lógica ou a sintaxe esta errada?

Não. É algo assim

 SELECT
    A, B, C,
CASE
	WHEN D > 0 THEN 1
	WHEN D < 0 THEN -1
	ELSE 100
END AS DD
FROM
    TABELA;
1 curtida

Consegui os projetos que não tem revisão, agora só falta os que tem revisão mostrar a ultima, depois junto as 2 consultas na jtable, o que você acha?

SELECT id_projeto, obra, tipo,subtipo,grd, data, codigo
FROM projeto
WHERE NOT EXISTS
(SELECT id_projeto FROM revisao WHERE id_projeto = projeto.id_projeto );

Oi, tentei muito antes de voltar aqui, a consulta das revisões mais recentes dos projetos, vê

select id_projeto, id_revisao, data, codigo from revisao group by id_projeto;

to dando um group by mas ele me dá o primeiro item de cada projeto e não o ultimo que seria o que eu iria precisar, se eu der um order by ele inverte todos os dados do resultado e não me dá o com maior id, já tentei dar um max(colum ) mas ai só me da o id e não o restante das colunas, algúem poderia ajudar?

d

Poste o que tentou com max. Exemplo:

select 
  id_projeto, 
  max(id_revisao) as id_revisao, 
  max(data) as data, 
  max(codigo) as codigo 
from 
  revisao 
group by 
  id_projeto;

AI ele me da todos os campos maiores, exemplo, o maior id revisao do id projeto 8 é o 15 então ele mostraria todas as colunas do id_revisao 15 e assim faria com os outros id_projeto, mas assim ele mostra o id_revisao maior que seria 15 mas ele não mostra a data do id revisão 15 que foi dia 30, mostra a data do id revisao 1 que foi dia 31 < exemplo, olha ai a consulta.

f

ja pensei em cada coluna dar um select where id revisao = a max(id_revisao), mas ele não reconhece essa função no where.

Entao voce nao quer agrupar. Veja se assim atende:

SELECT r.id_projeto, r.id_revisao, r.data, r.codigo, r.grd
  FROM revisao r
 WHERE r.data = (SELECT MAX(r2.data)
                   FROM revisao r2
                  WHERE r2.id_projeto = r.id_projeto)