Visualizzazione dei risultati da 1 a 4 su 4
  1. #1

    ORDER BY e GROUP BY - Problema

    Ciao a tutti, sono nel pallone per (credo) un semplice problema:

    date tre tabelle correlate con una LEFT JOIN

    1 Dati Anagrafici
    2 Visite Mediche
    3 Prove Fisiche

    SELECT dati_anagrafici.ID, dati_anagrafici.Cognome, dati_anagrafici.Nome, dati_anagrafici.DataNascita, visite_mediche.`data_visita_medica`, prove_fisiche.`Data Prova Fisica`
    FROM dati_anagrafici left join visite_mediche on dati_anagrafici.id=visite_mediche.id_anagrafica left join prove_fisiche on dati_anagrafici.id=prove_fisiche.id_anagrafica
    GROUP BY dati_anagrafici.Cognome, dati_anagrafici.nome
    ORDER BY dati_anagrafici.Cognome, prove_fisiche.`Data Prova Fisica` DESC, visite_mediche.`data_visita_medica` DESC

    RISULTATO:

    mi raggruppa solo per cognome e non mi fa vedere le ultime prove e visite effettuate


    Immagini allegate Immagini allegate

  2. #2
    cosa vorresti ottenere? fa' un esempio, mostrando i dati che hai nel db e come li vorresti in output

  3. #3
    Hai ragione scusa...
    Allora ho dei nominativi nella tab anagrafica e per ogni nominativo delle date, rispettivamente nelle tabelle Prove fisiche e Visite mediche.
    Ora mettendo il caso che il nominativo 1 della tab anagrafica abbia tre date nella tab Prove fisiche, il risultato, correlando le tab con tipo LEFT JOIN è il seguente:

    id
    COGNOME
    NOME PROVA FISICA
    1 Rossi Mario 01/01/2000
    1 Rossi Mario 01/02/2000
    1 Rossi Mario 01/03/2000
    Ma io ho bisogno di far visualizzare solo una volta il nominativo e quindi faccio GROUP BY Cognome ed il risultato è il seguente:

    id
    COGNOME NOME PROVA FISICA
    1 Rossi Mario 01/01/2000

    SBAGLIATO perrchè mi visualizza il primo record della tabella prove fisiche!!!

    Quindi aggiungo ORDER BY cognome, Prova_fisica DESC.

    Risultato UGUALE!!!

    Come faccio a far visualizzare solo una volta il cognome e l'ultimo record della tabella delle prove fisiche???

    AIUTATEMI PLEASE!!!

    Grazie in anticipo!

  4. #4
    Select cognome, max(prova_fisica)
    from tabella
    group by cognome ;
    Non si può risolvere un problema usando lo stesso modo di pensare che ha creato quel problema.
    Albert Einstein

    Siate Affamati, siate Folli, siate Onesti e siate Generosi

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 © 2026 vBulletin Solutions, Inc. All rights reserved.