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!!!