Accedi con Microsoft
Accedi o crea un account.
Salve,
Seleziona un altro account.
Hai più account
Scegli l'account con cui vuoi accedere.

Questo articolo spiega come usare le query dei primi valori e le query di totalità per trovare le date più recenti o meno recenti in un set di record. In questo modo è possibile rispondere a un'ampia varietà di domande aziendali, ad esempio quando un cliente ha effettuato l'ultimo ordine o quali cinque trimestri sono stati i migliori per le vendite, per città.

In questo articolo

Panoramica

È possibile classificare i dati ed esaminare gli elementi con la classificazione più alta usando una query dei primi valori. Una query dei primi valori è una query di selezione che restituisce un numero o una percentuale specificata di valori dalla parte superiore dei risultati, ad esempio le cinque pagine più popolari in un sito Web. È possibile usare una query dei primi valori su qualsiasi tipo di valore, senza che siano numeri.

Per raggruppare o riepilogare i dati prima di classificarlo, non è necessario usare una query dei primi valori. Si supponga, ad esempio, che è necessario trovare i numeri relativi alle vendite in una data specificata per ogni città in cui opera l'azienda. In questo caso, le città diventano categorie perché è necessario trovare i dati per ogni città, quindi si usa una query di totalizzazione.

Quando si usa una query dei primi valori per trovare i record che contengono le date più recenti o meno recenti in una tabella o in un gruppo di record, è possibile rispondere a un'ampia gamma di domande aziendali, ad esempio:

  • Chi ha fatto il maggior numero di vendite di recente?

  • In che data un cliente ha effettuato l'ultimo ordine?

  • Quando sono i prossimi tre compleanni nel team?

Per creare una query dei primi valori, iniziare creando una query di selezione. Ordinare quindi i dati in base alla domanda, sia nella parte superiore che in basso. Se è necessario raggruppare o riepilogare i dati, trasformare la query di selezione in una query di total. È quindi possibile usare una funzione di aggregazione, ad esempio Max o Min, per restituire il valore più alto o più basso oppure Prima o Ultima per restituire la data più recente o meno recente.

Questo articolo presuppone che i valori di data utilizzati siano del tipo di dati Data/ora. Se i valori di data sono in un campo di testo, .

È consigliabile usare un filtro invece di una query dei primi valori

Un filtro è in genere migliore se si ha una data specifica. Per determinare se creare una query dei primi valori o applicare un filtro, tenere presenti le considerazioni seguenti:

  • Per restituire tutti i record in cui la data corrisponde, è precedente o è successiva a una data specifica, usare un filtro. Ad esempio, per visualizzare le date per le vendite tra aprile e luglio, applicare un filtro.

  • Se si vuole restituire un numero specificato di record che hanno le date più recenti o più recenti in un campo e non si conoscono i valori di data esatti o se questi valori non sono importanti, creare una query dei primi valori. Ad esempio, per visualizzare i cinque trimestri di vendita migliori, usare una query dei primi valori.

Per altre informazioni sulla creazione e l'uso dei filtri, vedere l'articolo Applicare un filtro per visualizzare record selezionati in un database di Access.

Inizio pagina

Preparare i dati di esempio da seguire insieme agli esempi

I passaggi descritti in questo articolo usano i dati delle tabelle di esempio seguenti.

Tabella Dipendenti   

Cognome

Nome

Indirizzo

Città

CountryOrR egion

Data di nascita

Data di assunzione

Ruspini

Davide

Piazza Martedì 28

Milano

Italia

05 feb 1968

10 giu 1994

Martino

Agostino

Via Giovedì 47

Bologna

Italia

22 mag 1957

22-nov-1996

Sagese

Diego

3122 75esima ora. S.W.

Milano

Italia

11 nov 1960

11 mar 2000

Tanara

Marco

Corso Venerdì 68

Piacenza

Italia

22 mar 1964

22 giu 1998

Monaco

Massimiliano

Via Domenica 25

Modena

Italia

05 giu 1972

05 giu 2002

Guaita

Daniela

Via Mercoledì 8

Milano

Italia

23 gen 1970

23 apr 1999

Garghentini

Davide

Piazza Venerdì 72

Parma

Italia

14 apr 1964

14 ott 2004

Giorgi

Adriana

Via Martedì 58

Torino

Italia

29 ott 1959

29 mar 1997

Tabella EventType    

ID tipo

Tipo di evento

1

Lancio del prodotto

2

Funzione aziendale

3

Funzione privata

4

Raccolta fondi

5

Fiera

6

Lezione

7

Concerto

8

Mostra

9

Manifestazioni

Tabella Clienti    

ID cliente

Società

Contatto

1

Contoso, Ltd. Graphic

Carmelo Barese

2

Tailspin Toys

Raffaella Pagnotto

3

Fabrikam

Filippa Bruno

4

Wingtip Toys

Mattia Trentini

5

A. Datum

Francesca Lombo

6

Adventure Works

Cataldo Capon

7

Design Institute

Sofia Mancini

8

School of Fine Art

Irma Palermo

Tabella Eventi    

EventID

Tipo di evento

Cliente

Data evento

Prezzo

1

Lancio del prodotto

Contoso, Ltd.

4/14/2011

€ 10.000

2

Funzione aziendale

Tailspin Toys

4/21/2011

€ 8.000

3

Fiera

Tailspin Toys

01.05.11

€ 25.000

4

Mostra

Graphic Design Institute

5/13/2011

€ 4.500

5

Fiera

Contoso, Ltd.

5/14/2011

€ 55.000

6

Concerto

School of Fine Art

5/23/2011

€ 12.000

7

Lancio del prodotto

A. Datum

6/1/2011

€ 15.000

8

Lancio del prodotto

Wingtip Toys

6/18/2011

€ 21.000

9

Raccolta fondi

Adventure Works

6/22/2011

€ 1.300

10

Lezione

Graphic Design Institute

6/25/2011

€ 2.450

11

Lezione

Contoso, Ltd.

4/7/2011

€ 3.800

12

Manifestazioni

Graphic Design Institute

4/7/2011

€ 5.500

Nota: La procedura descritta in questa sezione presuppone che le tabelle Clienti e Tipo di evento corrispondano al lato "uno" di una relazione uno-a-molti con la tabella Eventi. In questo caso, la tabella Eventi condivide i campi ID cliente e ID tipo. Le query di totalizzazione descritte nelle sezioni successive non funzionano senza queste relazioni.

Incollare i dati di esempio in fogli di lavoro di Excel

  1. Avviare Excel. Si apre una cartella di lavoro vuota.

  2. Premere MAIUSC+F11 per inserire un foglio di lavoro (ne servono quattro).

  3. Copiare i dati da ogni tabella di esempio in un foglio di lavoro vuoto. Includere le intestazioni di colonna (la prima riga).

Creare tabelle di database dai fogli di lavoro

  1. Selezionare i dati del primo foglio di lavoro, incluse le intestazioni di colonna.

  2. Fare clic con il pulsante destro del mouse sul riquadro di spostamento e quindi scegliere Incolla.

  3. Fare clic su Sì per confermare che la prima riga contiene intestazioni di colonna.

  4. Ripetere i passaggi da 1 a 3 per ognuno dei fogli di lavoro rimanenti.

Trovare la data più o meno recente

I passaggi di questa sezione usano i dati di esempio per illustrare il processo di creazione di una query dei primi valori.

Creare una query dei primi valori di base

  1. Nel gruppo Query della scheda Crea fare clic su Struttura query.

  2. Fare doppio clic sulla tabella Dipendenti e quindi fare clic su Chiudi.

    Se si usano i dati di esempio, aggiungere la tabella Dipendenti alla query.

  3. Aggiungere i campi da usare nella query alla griglia di struttura. È possibile fare doppio clic su ogni campo oppure trascinare e rilasciare ogni campo in una cella vuota nella riga Campo.

    Se si usa la tabella di esempio, aggiungere i campi Nome, Cognome e Data di nascita.

  4. Nel campo che contiene i valori superiori o inferiori, ovvero il campo Data di nascita se si usa la tabella di esempio, fare clic sulla riga Ordina e selezionare Crescente o Decrescente.

    L'ordinamento decrescente restituisce la data più recente, mentre l'ordinamento crescente restituisce la data meno recente.

    Importante: È necessario impostare un valore nella riga Ordina solo per i campi che contengono le date. Se si specifica l'ordinamento per un altro campo, la query non restituisce i risultati desiderati.

  5. Nel gruppo Strumenti della scheda Struttura fare clic sulla freccia in giù accanto a Tutte (elenco Primi valori) e immettere il numero di record da visualizzare oppure selezionare un'opzione nell'elenco.

  6. Fare clic su Esegui Icona del pulsante per eseguire la query e aprire i risultati in visualizzazione Foglio dati.

  7. Salvare la query come NextBirthDays.

Come si può notare, questo tipo di query dei primi valori può rispondere a domande di base, ad esempio riguardo a quale sia la persona più vecchia o più giovane della società. I passaggi seguenti descrivono come usare espressioni e altri criteri per aggiungere efficacia e flessibilità alla query. I criteri indicati nel passaggio seguente restituiscono i prossimi tre compleanni dei dipendenti.

Aggiungere criteri alla query

Questi passaggi usano la query creata nella procedura precedente. È possibile seguire una query dei primi valori diversa, purché contenga dati di tipo Data/ora effettivi, non valori di testo.

Suggerimento:  Per comprendere meglio il funzionamento di questa query, passare dalla visualizzazione Struttura alla visualizzazione Foglio dati a ogni passaggio. Se si vuole visualizzare il codice della query effettivo, passare alla SQL visualizzazione. Per passare da una visualizzazione all'altra, fare clic con il pulsante destro del mouse sulla scheda nella parte superiore della query e quindi scegliere la visualizzazione desiderata.

  1. Nel riquadro di spostamento fare clic con il pulsante destro del mouse sulla query NextBirthDays e quindi scegliere Visualizzazione Struttura.

  2. Nella colonna a destra di BirthDate nella griglia di struttura della query immettere quanto segue:
    MonthDate: DatePart("m",[DataDi Nascita]).
    Questa espressione estrae il mese da BirthDate usando la funzione DatePart.

  3. Nella colonna successiva della griglia di struttura della query immettere quanto segue:
    DayOfMonth(): DatePart("d",[BirthDate])Questa espressione estrae il giorno del mese da BirthDate usando la funzione
    DatePart.

  4. Deselezionare le caselle di controllo nella riga Mostra per ognuna delle due espressioni appena immesse.

  5. Fare clic sulla riga Ordina per ogni espressione e quindi selezionare Crescente.

  6. Nella riga Criteri della colonna Data di nascita digitare l'espressione seguente:
    Month([Data di nascita]) > Month(Date()) OR Month([Data di nascita])= Month(Date()) AND Day([Data di nascita])>Day(Date())Questa espressione esegue le operazioni
    seguenti:

    • Month( [Data di nascita]) > Month(Date()) specifica che la data di nascita di ogni dipendente rientra in un mese futuro.

    • Month([Data dinascita])= Month(Date()) And Day([Data di nascita])>Day(Date()) specifica che se la data di nascita si verifica nel mese corrente, il compleanno rientra o dopo il giorno corrente.

      In breve, questa espressione esclude i record in cui il compleanno ricorre tra il 1° gennaio e la data corrente.

      Suggerimento:  Per altri esempi di espressioni per criteri di query, vedere l'articolo Esempi di criteri di query.

  7. Nel gruppo Imposta query della scheda Progettazione digitare 3 nella casella Invio.

  8. Nel gruppo Risultati della scheda Progettazione fare clic su Esegui Icona del pulsante.

Nota:  Nella propria query con i propri dati, a volte è possibile che venga visualizzato più record di quanto specificato. Se i dati contengono più record che condividono un valore tra i primi valori, la query restituirà tutti questi record anche se questo significa restituire più record del necessario.

Inizio pagina

Trovare le date più o meno recenti per gruppi di record

Usare una query di totalità per trovare le date più recenti o meno recenti per i record che rientrano in gruppi, ad esempio eventi raggruppati per città. Una query di totallinea è una query di selezione che usa funzioni di aggregazione, ad esempio Group By, Min,Max,Count,Firste Last, per calcolare i valori per ogni campo di output.

Includere il campo da usare per le categorie, in base al quale raggruppare, e il campo contenente i valori da riepilogare. Se si includono altri campi di output, ad esempio i nomi dei clienti quando si esegue il raggruppamento per tipo di evento, la query userà tali campi anche per creare gruppi, modificando i risultati in modo che non rispondano alla domanda originale. Per etichettare le righe usando altri campi, creare una query aggiuntiva che usa la query di totalitura come origine e aggiungere altri campi alla query.

Suggerimento:  La creazione di query in passaggi è una strategia molto efficace per rispondere a domande più avanzate. In caso di problemi di funzionamento di una query complessa, valutare se è possibile suddividerla in una serie di query più semplici.

Creare una query di totali

Questa procedura usa la tabella di esempio Events e la tabella di esempio EventType per rispondere a questa domanda:

Quando è stato l'evento più recente di ogni tipo di evento, esclusi i concerto?

  1. Nel gruppo Query della scheda Crea fare clic su Struttura query.

  2. Fare doppio clic sulle tabelle Events e EventType.
    Ogni tabella viene visualizzata nella sezione superiore di Progettazione query.

  3. Fare doppio clic sul campo EventType della tabella EventType e sul campo EventDate della tabella Events per aggiungere i campi alla griglia di struttura della query.

  4. Nella griglia di struttura della query, nella riga Criteri del campo EventType, immettere <>Concerto.

    Suggerimento:  Per altri esempi di espressioni di criteri, vedere l'articolo Esempi di criteri di query.

  5. Nel gruppo Mostra/Nascondi della scheda Progettazione fare clic su Totali.

  6. Nella griglia di struttura della query fare clic sulla riga Totale del campo EventDate e quindi su Max.

  7. Fare clic su Visualizza nel gruppo Risultati della scheda Struttura e quindi fare clic su Visualizzazione SQL.

  8. Nella finestra SQL, alla fine della clausola SELECT, subito dopo la parola chiave AS, sostituire MaxDiDataEvento con MostRecent.

  9. Salvare la query come MostRecentEventByType.

Creare una seconda query per aggiungere altri dati

Questa procedura usa la query MostRecentEventByType della procedura precedente per rispondere a questa domanda:

Chi è stato il cliente all'evento più recente di ogni tipo di evento?

  1. Nel gruppo Query della scheda Crea fare clic su Struttura query.

  2. Nella scheda Query fare doppio clic sulla query MostRecentEventByType.

  3. Nella scheda Tabelle fare doppio clic sulla tabella Eventi e sulla tabella Clienti.

  4. In Progettazione query fare doppio clic sui campi seguenti:

    1. Nella tabella Eventi fare doppio clic su EventType.

    2. Nella query MostRecentEventByType fare doppio clic su MostRecent.

    3. Nella tabella Clienti fare doppio clic su Società.

  5. Nella griglia di struttura della query selezionare Crescente nella riga Ordina della colonna EventType.

  6. Nel gruppo Risultati della scheda Struttura fare clic su Esegui.

Inizio pagina

Serve aiuto?

Vuoi altre opzioni?

Esplorare i vantaggi dell'abbonamento e i corsi di formazione, scoprire come proteggere il dispositivo e molto altro ancora.

Le community aiutano a porre e a rispondere alle domande, a fornire feedback e ad ascoltare gli esperti con approfondite conoscenze.

Queste informazioni sono risultate utili?

Come valuti la qualità della lingua?
Cosa ha influito sulla tua esperienza?
Premendo Inviare, il tuo feedback verrà usato per migliorare i prodotti e i servizi Microsoft. L'amministratore IT potrà raccogliere questi dati. Informativa sulla privacy.

Grazie per il feedback!

×