Query SQL - Help

di il
2 risposte

Query SQL - Help

Buongiorno a tutti.

Ho un problema con SQL che in Access sembra insormontabile. La questione è molto semplice. Ammettiamo di avere una tabella con i seguenti quattro campi:

Nome, Cognome, Anno, Reddito

Ho bisogno di avere un risultato che mi dia, per ogni Nome+Cognome una sola riga riportante il max Reddito e il relativo anno corrispondente. Se imposto questa funzione SQL:

SELECT Tabella.[Nome], Tabella.[Cognome], Tabella.[Anno], MAX(Tabella.[Reddito])
FROM Tabella
GROUP BY Tabella.[Nome], Tabella.[Cognome]

...mi viene detto che manca nella funzione di raggruppamento il campo Tabella.[Anno] che però, se viene aggiunto, mi restituisce più righe per ogni Nome+Cognome.

Come si risolve?

Grazie

2 Risposte

  • Re: Query SQL - Help

    Provo a ragionare per piccoli passi.
    1. Innanzitutto sarebbe cosa buona e giusta normalizzare su 2 tabelle Persone uno-a-molti Redditi. In quest'ultima ci vanno i campi IDReddito (PK), Anno, Reddito, IDPersona (FK).
    2. Crea una query dove importi entrambe le tabelle e mostri sicuramente i campi Reddito e IDPersona, ma non Anno. Su di essa fai il Max su Reddito. Salva la query con nome RedditiMax.
    3. Crea una nuova query dove importi la query RedditiMax e tabella Redditi. Collega 2 linee di join nei corrispondenti campi IDPersona e Reddito. Nella griglia sottostante trascina i campi IDPersona, Anno, Reddito. Salva con nome la query RedditiMaxAnno.
  • Re: Query SQL - Help

    Giusto! Grazie mille.
Devi accedere o registrarti per scrivere nel forum
2 risposte