Query raggruppamento valori più alti

di il
3 risposte

Query raggruppamento valori più alti

Salve a tutti ho una tabella dove sono caricate le assunzioni del personale, che possono essere assunti e licenziati più volte esempio:

Matricola DatadiAssunzione DatadiLicenziamento
3000238 23/04/2019 30/05/2019
3000238 10/06/2019

quindi questo operaio la prima volta è stato assunto il 23/04/19 e licenziato il 30/05/19 poi assunto il 10/06/19 e non ancora licenziato.
io vorrei fare una query di raggruppamento che mi selezioni solo la data di assunzione più recente cioè:

Matricola DatadiAssunzione DatadiLicenziamento
3000238 10/06/2019

quindi ho creato questa query
SELECT TabellaAssunzioni.Matricola, Max(TabellaAssunzioni.DatadiAssunzione) AS MaxDiDatadiAssunzione, Max(TabellaAssunzioni.DatadiLicenziamento) AS MaxDiDatadiLicenziamento
FROM TabellaAssunzioni
GROUP BY TabellaAssunzioni.Matricola

ma il risultato è

Matricola DatadiAssunzione DatadiLicenziamento
3000238 10/06/2019 30/05/2019

perchè ovviamente mi seleziona la data più elevata dell' assunzione e la data più elevata del licenziamento.

se invece la raggruppo per data liceziamento mi da con una query di questo genere:
SELECT TabellaAssunzioni.Matricola, Max(TabellaAssunzioni.DatadiAssunzione) AS MaxDiDatadiAssunzione, TabellaAssunzioni.DatadiLicenziamento
FROM TabellaAssunzioni
GROUP BY TabellaAssunzioni.Matricola, TabellaAssunzioni.DatadiLicenziamento
ovviamente mi da tutti e due i record.

Matricola DatadiAssunzione DatadiLicenziamento
3000238 23/04/2019 30/05/2019
3000238 10/06/2019

ho pensato che dovrei creare un espressione per la data di liceziamento o qualcosa del genere cosa mi suggerite?
Grazie

3 Risposte

  • Re: Query raggruppamento valori più alti

    Che succede se metti Primo (First) a Matricola e DataDiLicenziamento?
  • Re: Query raggruppamento valori più alti

    Ciao Osvaldo ho fatto un pò di prove e mettendo Ultimo (Last) Sia a dataAssunzione che a datalicenziamento dovrebbe darmi il risultato che voglio, l' unico problema è che last l' sql server non lo riconosce
  • Re: Query raggruppamento valori più alti

    Ed ho lo stesso problema con la tabella redditi:
    SELECTTabRedditoEAddizAnnuo.Matricola, TabRedditoEAddizAnnuo.RedditoAnnuo, Max(TabRedditoEAddizAnnuo.Anno) AS MaxDiAnno
    FROM TabRedditoEAddizAnnuo
    GROUP BY TabRedditoEAddizAnnuo.Matricola, TabRedditoEAddizAnnuo.RedditoAnnuo;
    
    Vorrei selezionare solo i redditi dell' anno più recente quindi col numero più alto
Devi accedere o registrarti per scrivere nel forum
3 risposte