Selezione Data più recente in una query

di il
8 risposte

Selezione Data più recente in una query

Ciao ha tutti, mi scuso già per la mia poca conoscenza di ACCESS che sto imparando ad usare da autodidatta.

Sto cercando di venire a capo di un problema che non riesco a risolvere: come prova per imparare ho basato il mio database su una società sportiva, ho creatop una maschera con il struttura a schede dove oltre ai dati di ogni atleta ho inserito in una scheda la sezione dei pagamenti eseguiti suddivisi per data, tipo di pagamento e cifra.

Nella tabella atleti ho inserito ogni campo (data pagamento gennaio, data pagamento Febbraio, Data pagamento Marzo ecc.) vorrei che in una maschera continua mi comparisse solo la data di pagamento più recente per ogni report.

Per capirci se l'atletta Gianni ha fatto 3 pagamenti il 15/01 il 15/03 e il 25/06 vorrei che mi restituisse solo 25/06 e nel momento di un nuovo pagamento (ipoteticamente il 20/08 vorrei che indicasse quello).

Spero di essere stato chiaro.

Grazie fin d'ora a chi mi aiuterà.

8 Risposte

  • Re: Selezione Data più recente in una query

    Tu hai bisogno di un CRITERIO che identifica la PK, quindi Gianni, da li poi hai diversi modi, puoi usare DMAX(....) o una 

    SELECT TOP1 TuoCampoData FROM TuaTabella WHERE IDPK=1023 ORDERBY TuoCampoData DESC

    Apri ujn Recordset su questo predicato ed hai la data più recente...

  • Re: Selezione Data più recente in una query

    Ciao Intanto Grazie per la risposta, mi sa comunque, vista la mia ignoranza in materia, che mi servono altre delucidazioni.

    Ogni Atleta (Gianni, Francesco,Giovanni ecc.) ha il suo IDAtleta numerico e credo sia quello che identifichi il report giusto?

    Quindi ho creato una query (che ho chiamato QueryScadenze) contenente IDAtleta-Nome Atleta-DataPagamenetoGennaio-DataPagamenetoFebbraio-DataPagamenetoMarzo.... fino all'ultima DataPagamenetoDicembre. (I campi vengono riempiti in una maschera apposita quando avviene il pagamento)

    Tutti i campi sono contenuti nella tabella "Atleti" e nella stessa ho aggiunto un campo ultimo pagamento perche non sapevo se serviva un campo apposito per la restituzione del valore.

    Come faccio ad usare Dmax? avevo provato ma mi dava errore... probabilmente avro sbagliato qualcosa

    Altimenti come faccio con la funzione Select?

    Devo aprire un nuovo campo nella stessa QueryScadenze con scritto cosa? =SELECT (cosa si intendi con top1?) e che campo devo mettere? il primo? (DataPagamento Gennaio?) FROM (che tabella devo mettere "Atleti" o QueryScadenze?) WHERE IDPK=1023 ORDERBY (che campo devo mettere? L'ultimo DataPAgamentoDicembre?) DESC (almeno questo lo so a cosa serve ??????).

    Scusami per la lunghezza e la pesantezza ma non ne vado fuori

    Grazie

  • Re: Selezione Data più recente in una query

    Onestamente ho la sensazione che le lacune di base per affrontar eil problema siano veramente molto importanti.

    Un conto è chiedere supporto per una cosa, un conto è non padroneggiare le nozioni di base indispensabili a comprendere, per queste devi studiarti un po di cose...

    Il DMAX è descritto nella guida, mentre le Clausole SQL sono tipiche del linguaggio SQL..., e cosa sia una PK e perchè questa sia fondamentale per la gestione dei dati sono veramente il minimo indispensabile per capire come muoverti. 

    Quì trovi come fuinziona DMAX

    https://support.microsoft.com/it-it/topic/funzioni-dmin-e-dmax-f5c6de87-8752-4f29-ab4b-c554053d299f

    Quì trovi cosa sono alcune delle Clausole SQL tra le quali quella suggerita.

    https://www.w3schools.com/sql/sql_top.asp

    Tuttavia, hoi il sospetto non avendo spiegato bene COSA devi fare e come, ti sarà improbabile finalizzare il tutto... perchè se il dato che devi estrarre è fine a se stesso forse meglio un metodo che potrebbe essere DMAX, se devi manipolarlo da codice lo statement SQL con il VBA... 

  • Re: Selezione Data più recente in una query

    Il database non è normalizzato e questo ti creerà molti problemi.

    Non puoi usare una sola tabella con i pagamenti in varie colonne. I pagamenti devono state in altra tabella ben relazionata. E solo dopo potrai creare la tua JOIN per fare la ricerca che ti serve

  • Re: Selezione Data più recente in una query

    Ciao, per chiarire meglio cosa devi fare e come hai strutturato i dati sarebbe opportuno vedere come hai costruito le tabelle. Se i dati non sono stati correttamente normalizzati potresti avere seri problemi nella loro manipolazione. 

    Tu stesso hai ribadito di avere poca conoscenza di Access ed essere autodidatta (come lo sono io), ma se posso darti un prezioso consiglio per evitare di ricostruire il db (per quanto semplice possa essere), comincia con lo studiarti cosa e' la normalizzazione dei dati, come si costruisce uno schema E-R (entity-relationship) e, una volta costruito il tuo schema teorico potrai strutturare correttamente tabelle e query. 

    Ma se cominci dalla fine, non sarai in grado di capire i suggerimenti che Ti vengono forniti...

  • Re: Selezione Data più recente in una query

    Ciao, Intanto grazie a tutti per le risposte, sinceramente avevo immaginato che le mie lacune di base mi avessero portato a fare errori banali, comunque mi leggerò le sezioni che mi avete indicato sulla normalizzazione dei dati, DMAX e clausole sql cercando di capire come lavora access.

    Sono sempre convinto che per imparare bisogna sbagliare e riprovare , e che ogni consiglio è sempre ben accetto.

    Grazie a tutti.

  • Re: Selezione Data più recente in una query

    Comincia da qui (poi in rete trovi ulteriori presentazioni per approfondire):

    https://www.slideshare.net/slideshow/progettazione-concettuale-per-le-basi-di-dati-introduzione-e-il-modello-er/4691312

    https://www.slideshare.net/slideshow/esempio-di-normalizzazione/2567348

  • Re: Selezione Data più recente in una query

    Grazie 1000 ????

Devi accedere o registrarti per scrivere nel forum
8 risposte