Visualizzazione dei risultati da 1 a 4 su 4

Discussione: Problema con MAX()!

  1. #1

    Problema con MAX()!

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

  2. #2
    Utente di HTML.it L'avatar di luca200
    Registrato dal
    Apr 2002
    Messaggi
    4,120
    Non si capisce niente di quello che vuoi fare, e nemmeno che senso abbiano quelle tabelle.
    vorrei far visualizzare l'ultimo stato relativo ( quindi uso MAX(lista_stato.tipo)
    Solo questa frase fa rizzare i capelli... perché mai il tipo più "alto" (cioè l'ultimo in ordine alfabetico) dovrebbe essere l'ultimo?

  3. #3
    la prima tab contiene dei dati anagrafici la seconda dei dati "lavorativi" la terza ho dimenticato di mettere due campi (scusami) DAL AL, la quarta semplicemente un elenco di "STATI"...

    non capisco il perchè tu dica che non abbiano senso...mha!

    per quanto riguarda la frase che ti ha fatto rizzare i capelli, hai ragione scusa ma volevo dire "l'ultimo ID" inserito..

    spero di essere stato chiaro...non vorrei farti rizzare nient'altro

  4. #4
    Utente di HTML.it L'avatar di luca200
    Registrato dal
    Apr 2002
    Messaggi
    4,120
    Prima non avevo detto che non avevano senso. Avevo detto che non lo capivo.
    Adesso invece mi pare di aver capito, e posso dire che la tabella Stato non ha nessun senso. I campi dal e al li dovresti aggiungere a "dati_lavoro", e al posto di id_stato metterci l'id della "lista_stati".
    Poi ci sarebbe da discutere sui nomi dati alle tabelle, che certo non aiutano. Diciamo che tu e l'Entity/Relationship non siete amici troppo intimi

Permessi di invio

  • Non puoi inserire discussioni
  • Non puoi inserire repliche
  • Non puoi inserire allegati
  • Non puoi modificare i tuoi messaggi
  •  
Powered by vBulletin® Version 4.2.1
Copyright © 2025 vBulletin Solutions, Inc. All rights reserved.