Come trovare il penultimo ordine in Microsoft Access

Se sappiamo trovare l’ultimo ordine (vedi il mio video), diventa ultimo capire come trovare il penultimo ordine in Microsoft Access, così potremmo calcolare per esempio quanti giorni sono intercorsi tra gli ultimi due ordini.

Abbiamo un database con una tabella di Ordini:

ordini

Con questa query possiamo sapere per ogni cliente quale sia stato l’ultimo ordine effettuato.

ultimoordine

 

ultimoordine_struttura

 

Per conoscere il penultimo ordine possiamo creare una nuova query che visualizzerà l’ordine più recente che non sia già presente nella query selUltimoOrdineByCliente:

penultimoordine

La struttura della query è la seguente:

penultimoordine_struttura

 

Attenzione. Dopo aver creato i due join tra le tabelle, occorre impostare la proprietà di entrambi i join per visualizzare tutti i record di Ordini e solo quelli di selUltimoOrdineByCliente (per chi è pratico di linguaggio SQL, si tratta di un LEFT JOIN).

E per finire calcoliamo quanti giorni sono trascorsi tra gli ultimi due ordini:

situazioneordini

Nota che il cliente CENTC non ha un secondo ordine, perciò la differenza in giorni non viene calcolata.

La struttura della query è la seguente:

situazioneordini_struttura

 

Come vedete, è tutto un gioco di join tra tabelle/query :-)

Viva il linguaggio SQL!