Se aplică la
Access 2010

Acest articol vă arată cum să utilizați interogări de valori de top și interogări de totaluri pentru a găsi cele mai recente sau mai vechi date dintr-un set de înregistrări. Acest lucru vă poate ajuta să răspundeți la o varietate de întrebări de afaceri, cum ar fi atunci când un client a plasat ultima dată o comandă sau care cinci trimestre au fost cele mai bune pentru vânzări, după localitate.

În acest articol

Prezentare generală

Puteți să clasificați datele și să revizuiți elementele de rang cel mai înalt utilizând o interogare cu valori de top. O interogare cu valori de top este o interogare de selectare care returnează un număr specificat sau un procent de valori din partea de sus a rezultatelor, de exemplu, cele mai populare cinci pagini de pe un site web. Puteți utiliza o interogare cu valori de top pentru orice tip de valori; acestea nu trebuie să fie numere.

Dacă doriți să grupați sau să rezumați datele înainte de a le clasifica, nu trebuie să utilizați o interogare cu valori de top. De exemplu, să presupunem că trebuie să găsiți numerele de vânzări pentru o dată pentru fiecare localitate în care funcționează firma dvs. În acest caz, orașele devin categorii (trebuie să găsiți datele pentru fiecare oraș), astfel încât să utilizați o interogare de totaluri.

Atunci când utilizați o interogare cu valori de top pentru a găsi înregistrările care conțin cele mai recente sau mai vechi date dintr-un tabel sau grup de înregistrări, puteți răspunde la o varietate de întrebări de afaceri, cum ar fi următoarele:

  • Cine a făcut cele mai multe vânzări în ultima vreme?

  • Când a plasat un client ultima dată o comandă?

  • Când sunt următoarele trei zile de naștere în echipă?

Pentru a crea o interogare cu valori de top, începeți prin a crea o interogare de selectare. Apoi sortați datele în funcție de întrebarea dvs., indiferent dacă doriți să căutați partea de sus sau de jos. Dacă trebuie să grupați sau să rezumați datele, transformați interogarea de selectare într-o interogare de totaluri. Apoi puteți utiliza o funcție agregată, cum ar fi Max sau Min pentru a returna cea mai mare sau cea mai mică valoare sau Primul sau Ultimul pentru a returna cea mai veche sau cea mai recentă dată.

Acest articol presupune că valorile de date pe care le utilizați au tipul de date Dată/Oră. Dacă valorile de date calendaristice se află într-un câmp Text, .

Luați în considerare utilizarea unui filtru în locul unei interogări cu valori de top

Un filtru este de obicei mai bun dacă vă gândiți la o anumită dată. Pentru a determina dacă ar trebui să creați o interogare cu valori de top sau să aplicați un filtru, luați în considerare următoarele:

  • Dacă doriți să returnați toate înregistrările unde data se potrivește, este anterioară sau ulterioară unei anumite date, utilizați un filtru. De exemplu, pentru a vedea datele pentru vânzări între aprilie și iulie, aplicați un filtru.

  • Dacă doriți să returnați o cantitate specificată de înregistrări care au cele mai recente sau mai recente date într-un câmp și nu cunoașteți valorile exacte de date sau nu contează, creați o interogare cu valori de top. De exemplu, pentru a vedea cele mai bune cinci trimestre de vânzări, utilizați o interogare cu valori de top.

Pentru mai multe informații despre crearea și utilizarea filtrelor, consultați articolul Aplicarea unui filtru pentru a vizualiza înregistrările selectate dintr-o bază de date Access.

Începutul paginii

Pregătirea datelor eșantion de urmat împreună cu exemplele

Pașii din acest articol utilizează datele din următoarele tabele eșantion.

Tabelul Angajați   

Nume

Prenume

Adresă

Localitate

Egion CountryOrR

Data nașterii

Data angajării

Barnhill

Josh

1 Main St.

New York

SUA

05-feb-1968

10-iun-1994

Heloo

Waleed

52 1st St.

Boston

SUA

22-mai-1957

22-nov-1996

Roman

Guido

3122 75th Ave. S.W

Seattle

SUA

11-nov-1960

11-mar-2000

Bagel

Jean Philippe

1 Contoso Blvd.

Londra

Regatul Unit

22-mar-1964

22-iun-1998

Price

Julian

Calle Smith 2

Mexico City

Mexic

05-iun-1972

05-ian-2002

Hughes

Christine

3122 75th St. S.

Seattle

SUA

23-ian-1970

23-apr-1999

Riley

Steve

67 Big St.

Tampa

SUA

14-apr-1964

14-oct-2004

Birkby

Dana

2 Nosey Pkwy

Portland

SUA

29-oct-1959

29-mar-1997

Tabelul EventType   

ID Tip

Tip eveniment

1

Lansare produs

2

Funcția Corporate

3

Funcție privată

4

Strângere de fonduri

5

Expoziție comercială

6

Prelegere

7

Concert

8

Expune

9

Târg stradal

Tabelul Clienți   

IDClient

Firmă

Persoană de contact

1

Contoso, Ltd. Grafic

Jonathan Haas

2

Tailspin Toys

Ellen Adams

3

Fabrikam

Carol Philips

4

Wingtip Toys

Lucio Iallo

5

A. Datum

Mandar Samant

6

Adventure Works

Brian Burke

7

Institutul de proiectare

Jaka Stele

8

Școala de Artă Plastică

Milena Duomanova

Tabelul Events   

IDEveniment

Tip eveniment

Client

Data evenimentului

Preț

1

Lansare produs

Contoso, Ltd.

4/14/2011

10.000 lei

2

Funcția Corporate

Tailspin Toys

4/21/2011

8.000 lei

3

Expoziție comercială

Tailspin Toys

01.05.11

25.000 de lei

4

Expune

Graphic Design Institute

5/13/2011

4.500 lei

5

Expoziție comercială

Contoso, Ltd.

5/14/2011

55.000 de lei

6

Concert

Școala de Artă Plastică

5/23/2011

12.000 lei

7

Lansare produs

A. Datum

6/1/2011

15.000 lei

8

Lansare produs

Wingtip Toys

6/18/2011

21.000 lei

9

Strângere de fonduri

Adventure Works

6/22/2011

1.300 de lei

10

Prelegere

Graphic Design Institute

6/25/2011

2.450 de lei

11

Prelegere

Contoso, Ltd.

04.07.2011

3.800 de lei

12

Târg stradal

Graphic Design Institute

04.07.2011

5.500 lei

Notă: Pașii din această secțiune presupun că tabelele Clienți și Tip de eveniment se află în partea "unu" a relațiilor unu-la-mai-mulți cu tabelul Events. În acest caz, tabelul Events partajează câmpurile CustomerID și TypeID. Interogările de totaluri descrise în secțiunile următoare nu vor funcționa fără acele relații.

Lipirea datelor eșantion în foi de lucru Excel

  1. Porniți Excel. Se deschide un registru de lucru necompletat.

  2. Apăsați SHIFT+F11 pentru a insera o foaie de lucru (veți avea nevoie de patru).

  3. Copiați datele din fiecare tabel eșantion într-o foaie de lucru necompletată. Includeți titlurile de coloană (primul rând).

Crearea tabelelor bazei de date din foile de lucru

  1. Selectați datele din prima foaie de lucru, inclusiv titlurile de coloană.

  2. Faceți clic cu butonul din dreapta pe Panoul de navigare, apoi faceți clic pe Lipire.

  3. Faceți clic pe Da pentru a confirma că primul rând conține titluri de coloană.

  4. Repetați pașii 1-3 pentru fiecare foaie de lucru rămasă.

Găsirea datei cea mai recentă sau cea mai recentă

Pașii din această secțiune utilizează datele eșantion pentru a ilustra procesul de creare a unei interogări cu valori de top.

Crearea unei interogări cu valori de top de bază

  1. În fila Creare, în grupul Interogări, faceți clic pe Proiectare interogare.

  2. Faceți dublu clic pe tabelul Angajați, apoi faceți clic pe Închidere.

    Dacă utilizați datele eșantion, adăugați tabelul Angajați la interogare.

  3. Adăugați câmpurile pe care doriți să le utilizați în interogare în grila de proiectare. Puteți să faceți dublu clic pe fiecare câmp sau să glisați și să fixați fiecare câmp într-o celulă necompletată din rândul Câmp .

    Dacă utilizați tabelul eșantion, adăugați câmpurile Prenume, Nume și Data nașterii.

  4. În câmpul care conține valorile superioare sau inferioare (câmpul Data nașterii, dacă utilizați tabelul eșantion), faceți clic pe Sortare și selectați Ascendent sau Descendent.

    Ordinea de sortare descendentă returnează cea mai recentă dată, iar ordinea de sortare Ascendent returnează cea mai veche dată.

    Important: Trebuie să setați o valoare în rândul Sortare doar pentru câmpurile care conțin datele dvs. Dacă specificați o ordine de sortare pentru alt câmp, interogarea nu returnează rezultatele dorite.

  5. Pe fila Proiectare , în grupul Instrumente , faceți clic pe săgeata în jos de lângă Toate (lista Valori de top ) și introduceți numărul de înregistrări pe care doriți să le vedeți sau selectați o opțiune din listă.

  6. Faceți clic pe Rulare Imagine buton pentru a rula interogarea și a afișa rezultatele într-o vizualizare Foaie de date.

  7. Salvați interogarea ca NextBirthDays.

Veți vedea că acest tip de interogare cu valori de top poate răspunde la întrebări de bază, cum ar fi cine este cea mai în vârstă sau cea mai tânără persoană din firmă. Următorii pași vă arată cum să utilizați expresii și alte criterii pentru a oferi putere și flexibilitate interogării. Criteriile prezentate în următorul pas returnează următoarele trei zile de naștere ale angajaților.

Adăugarea de criterii la o interogare

Acești pași utilizează interogarea creată în procedura anterioară. Puteți continua cu o altă interogare cu valori de top, atât timp cât aceasta conține date reale dată/oră, nu valori text.

Sfat:  Dacă doriți să înțelegeți mai bine cum funcționează această interogare, comutați între Vizualizarea proiect și Vizualizarea foaie de date la fiecare pas. Dacă doriți să vedeți codul de interogare real, comutați la vizualizarea SQL. Pentru a comuta între vizualizări, faceți clic dreapta pe fila din partea de sus a interogării, apoi faceți clic pe vizualizarea dorită.

  1. În Panoul de navigare, faceți clic dreapta pe interogarea NextBirthDays, apoi faceți clic pe Vizualizare proiect.

  2. În grila de proiectare a interogării, în coloana din partea dreaptă a DateiNașterii, introduceți următoarele:MonthBorn: DatePart("m",[DataNașterii]).Această expresie extrage luna din DataNașterii, utilizând funcția DatePart .

  3. În coloana următoare a grilei de proiectare a interogării, introduceți următoarele:DayOfMonthBorn: DatePart("d",[BirthDate])Această expresie extrage ziua din lună din DataNașterii, utilizând funcția DatePart .

  4. Debifați casetele de selectare din rândul Afișare pentru fiecare dintre cele două expresii pe care tocmai le-ați introdus.

  5. Faceți clic pe rândul Sortare pentru fiecare expresie, apoi selectați Ascendent.

  6. În rândul Criterii din coloana Data nașterii , tastați următoarea expresie:Month([Data nașterii]) > Month(Date()) OR Month([Data nașterii])= Month(Date()) AND Day([Data nașterii])>Day(Date()))Această expresie efectuează următoarele:

    • Month( [Data nașterii]) > Month(Date()) specifică faptul că data nașterii fiecărui angajat cade într-o lună viitoare.

    • Luna( [Data nașterii])= Lună(Dată()) Și Zi([Data nașterii])>Zi(Dată()) specifică faptul că, dacă data nașterii apare în luna curentă, ziua de naștere cade în ziua curentă sau după aceasta.

      Pe scurt, această expresie exclude toate înregistrările în care ziua de naștere are loc între 1 ianuarie și data curentă.

      Sfat:  Pentru mai multe exemple de expresii de criterii de interogare, consultați articolul Exemple de criterii de interogare.

  7. Pe fila Proiectare , în grupul Inițializare interogare , tastați 3 în caseta Returnare .

  8. Pe fila Proiectare, în grupul Rezultate, faceți clic pe Rulare Imagine buton.

Notă:  În propria interogare utilizând propriile date, este posibil să vedeți uneori mai multe înregistrări decât ați specificat. Dacă datele conțin mai multe înregistrări care partajează o valoare care se află între valorile de top, interogarea va returna toate aceste înregistrări, chiar dacă aceasta înseamnă să returnați mai multe înregistrări decât ați dorit.

Începutul paginii

Găsirea datelor cele mai recente sau a celor mai recente pentru grupuri de înregistrări

Utilizați o interogare de totaluri pentru a găsi cele mai vechi sau mai recente date pentru înregistrările care se încadrează în grupuri, cum ar fi evenimentele grupate după localitate. O interogare de totaluri este o interogare de selectare care utilizează funcții agregate (cum ar fi Grupare după, Mîn, Max, Contor, Primul și Ultimul) pentru a calcula valorile pentru fiecare câmp de ieșire.

Includeți câmpul pe care doriți să-l utilizați pentru categorii - pentru a grupa după - și câmpul cu valorile pe care doriți să le sintetizați. Dacă includeți alte câmpuri de ieșire, de exemplu, numele clienților atunci când grupați după tipul de eveniment, interogarea va utiliza, de asemenea, acele câmpuri pentru a crea grupuri, modificând rezultatele astfel încât aceștia să nu răspundă la întrebarea inițială. Pentru a eticheta rândurile utilizând alte câmpuri, creați o interogare suplimentară care utilizează interogarea de totaluri ca sursă și adăugați câmpuri suplimentare la acea interogare.

Sfat:  Construirea interogărilor în pași este o strategie foarte eficientă pentru a răspunde la întrebări mai complexe. Dacă întâmpinați probleme la funcționarea unei interogări complicate, gândiți-vă dacă o puteți împărți într-o serie de interogări mai simple.

Crearea unei interogări de totaluri

Această procedură utilizează tabelul eșantion Evenimente și tabelul eșantion EventType pentru a răspunde la această întrebare:

Când a fost cel mai recent eveniment al fiecărui tip de eveniment, cu excepția concertelor?

  1. În fila Creare, în grupul Interogări, faceți clic pe Proiectare interogare.

  2. Faceți dublu clic pe tabelele Events și EventType. Fiecare tabel apare în secțiunea de sus a proiectantului de interogări.

  3. Faceți dublu clic pe câmpul EventType din tabelul EventType și pe câmpul EventDate din tabelul Events pentru a adăuga câmpurile la grila de proiectare a interogării.

  4. În grila de proiectare a interogării, în rândul Criterii al câmpului EventType , introduceți <>Concert.

    Sfat:  Pentru mai multe exemple de expresii de criterii, consultați articolul Exemple de criterii de interogare.

  5. Pe fila Proiectare, în grupul Afișare/Ascundere faceți clic pe Totaluri.

  6. În grila de proiectare a interogării, faceți clic pe rândul Total al câmpului EventDate (Dată Eveniment), apoi faceți clic pe Max.

  7. Pe fila Proiectare, în grupul Rezultate, faceți clic pe Vizualizare, apoi faceți clic pe SQL.

  8. În fereastra SQL, la sfârșitul clauzei SELECT, imediat după cuvântul cheie AS, înlocuiți MaxOfEventDate cu MostRecent.

  9. Salvați interogarea ca MostRecentEventByType.

Crearea unei a doua interogări pentru a adăuga mai multe date

Această procedură utilizează interogarea MostRecentEventByType din procedura precedentă pentru a răspunde la această întrebare:

Cine a fost clientul la cel mai recent eveniment al fiecărui tip de eveniment?

  1. În fila Creare, în grupul Interogări, faceți clic pe Proiectare interogare.

  2. Pe fila Interogări , faceți dublu clic pe interogarea MostRecentEventByType.

  3. Pe fila Tabele , faceți dublu clic pe tabelul Evenimente și pe tabelul Clienți.

  4. În proiectantul de interogări, faceți dublu clic pe următoarele câmpuri:

    1. În tabelul Events, faceți dublu clic pe EventType.

    2. În interogarea MostRecentEventByType, faceți dublu clic pe MostRecent.

    3. În tabelul Clienți, faceți dublu clic pe Firmă.

  5. În grila de proiectare a interogării, în rândul Sortare din coloana Tip Eveniment , selectați Ascendent.

  6. Pe fila Proiectare, în grupul Rezultate, faceți clic pe Rulare.

Începutul paginii

Aveți nevoie de ajutor suplimentar?

Doriți mai multe opțiuni?

Explorați avantajele abonamentului, navigați prin cursurile de instruire, aflați cum să vă securizați dispozitivul și multe altele.