Buongiorno a tutti,
sono due giorni che combatto con una stupidissima query !
Praticamente vi spiego:
ho creato 4 tabelle ovviamente correlate:

ANAGRAFICA
id
cognome
nome

DATI_LAVORO
id
id_anagrafica
id_stato

STATO
id
id_dati_lavoro
id_lista_stato

LISTA_STATO
id
tipo

Praticamente ognuno può avere più stati per esempio (DIPENDENZA - MALATTIA - TRASFERITO - PENSIONE); ora in un elenco vorrei far visualizzare l'ultimo stato relativo ( quindi uso MAX(lista_stato.tipo) però alcuni di questi non devono apparire (TRASFERITO - PENSIONE)..Problema:

Eseguo una query:

SELECT anagrafica.cognome, anagrafica.nome,lista_stato.tipo
FROM stato right join dati_lavoro on stato.id_dati_lavoro=dati_lavoro.id_stato right join anagrafica on dati_lavoro.id_anagrafica=anagrafica.id left join lista_stato on stato.id_lista_stato=lista_stato.id

ed ottengo:

id Cognome Nome Stato
1 Mario Rossi DIPENDENZA
2 Mario Rossi TRASFERITO
3 Ernesto Bianchi DIPENDENZA
4 Giovanni Battista MALATTIA


E fin qui ci siamo...ma se provo a fare

SELECT anagrafica.cognome, anagrafica.nome,MAX(lista_stato.tipo)
FROM stato right join dati_militari on stato.id_dati_militari=dati_militari.id_stato right join anagrafica on dati_militari.id_anagrafica=anagrafica.id left join lista_stato on stato.id_lista_stato=lista_stato.id

Mi ritrovo

id Nome Cognome Stato
2 Mario Rossi TRASFERITO


Mentre quello che dovrei ottenere:

id Cognome Nome Stato
3 Ernesto Biachi DIPENDENZA
4 Giovanni Battista MALATTIA


AIUTO RAGAZZI!!

Grazie 1000 in anticipo!!!