Rezumat în rapoarte. Câmpuri calculate în Interogări de acces Tipuri de agregate pe care le puteți adăuga în raport

Rândul Total din Access vă permite să vizualizați rapid un rezumat al datelor din coloanele unui tabel. De exemplu, dacă adăugați un rând Total la un tabel care conține detalii despre achiziții, puteți afișa valoarea vânzărilor, numărul total de unități ale unui articol sau numărul de articole achiziționate.

Notă: Pentru a afișa suma valorilor unei coloane, trebuie să setați tipul de date al coloanei la Numeric, Fracționat sau Monedă. Pentru coloanele nenumerice, puteți selecta doar tipul de rezumat Număr de valori.

Adăugarea unei linii „Total”.

Selectarea unui tip total

După adăugarea liniei rezultate alegeți tipul de total afișat pentru fiecare coloană. De exemplu, agregate precum sumele pot fi afișate atunci când tipul de date este număr, zecimal sau monedă. Numărarea valorilor este posibilă dacă tipul de date este o valoare text.

Să facem ca tabelul din acest exemplu să afișeze suma valorilor din coloane Pretul de cumparareȘi Articole achiziționateși totalul pentru coloană Poziţie așa cum se arată în imaginea de mai jos.

Cum funcționează Suma și alte funcții agregate

Funcțiile agregate efectuează calcule pe coloane de date și returnează un singur rezultat. Ele pot fi utile dacă trebuie să calculați o singură valoare, cum ar fi o sumă sau o medie. Rețineți că funcțiile agregate se aplică coloanelor de date. Acest lucru poate părea evident, dar atunci când proiectați și utilizați baze de date, de obicei vă concentrați pe rânduri de date și înregistrări individuale, astfel încât utilizatorii să poată introduce date într-un câmp, să poată muta cursorul la dreapta sau la stânga pentru a completa câmpul următor etc. utilizați funcții de agregate, concentrându-vă pe grupuri de înregistrări în coloane.

Să presupunem că utilizați Access pentru a stoca și urmări datele vânzărilor. Folosind funcțiile de agregare, puteți calcula numărul de articole vândute într-o coloană, vânzările totale într-o secundă și vânzările medii pentru fiecare articol într-o a treia.

Tabelul de mai jos descrie funcțiile de agregare Access care sunt disponibile în rândul Total. Rețineți că există și alte funcții agregate în Access, dar acestea sunt utilizate în interogări.

Funcţie

Descriere

Tipuri de date acceptate

Disponibil în linia „Total”?

Calculează valoarea medie pentru o coloană. Coloana trebuie să conțină valori numerice, monetare sau date sau ore. Funcția ignoră valorile goale.

Numărul de valori

Numărează numărul de elemente dintr-o coloană.

Toate tipurile de date, cu excepția datelor scalare complexe care se repetă, cum ar fi o coloană de listă cu mai multe valori. Pentru mai multe informații despre listele cu valori multiple, consultați Cele mai bune practici pentru crearea și ștergerea câmpurilor cu valori multiple din tutorialele Câmpuri cu valori multiple.

Valoare maximă

Returnează elementul cu cea mai mare valoare. Pentru datele text, cea mai mare valoare este ultima valoare din alfabet, iar Access nu face distincție între majuscule și minuscule. Funcția ignoră valorile goale.

, "Data si ora"

Valoarea minima

Returnează elementul cu cea mai mică valoare. Pentru datele text, cea mai mică valoare este prima valoare alfabetică, iar Access nu face distincție între majuscule și minuscule. Funcția ignoră valorile goale.

„Numeric”, „Real”, „Moneda”, „Data și ora”

Deviație standard

„Numeric”, „Real”, „Monetă”

Însumează elementele dintr-o coloană. Potrivit numai pentru date numerice și monetare.

„Număr”, „Real”, „Monetă”

Dispersia

Calculează varianța statistică pentru toate valorile dintr-o coloană. Potrivit numai pentru date numerice și monetare. Dacă tabelul conține mai puțin de două rânduri, Access returnează o valoare goală. Pentru mai multe informații despre funcția Variance, consultați secțiunea următoare.

„Numeric”, „Real”, „Monetă”

Aflați mai multe despre funcțiile Abaterea standard și Varianta

Funcții Deviație standardȘi Dispersia se calculează valorile statistice. În special, ele sunt utilizate pentru valori care se află în vecinătatea valorii lor medii și respectă legea distribuției normale (sunt pe o curbă Gaussiană).

Să presupunem că ați selectat aleatoriu 10 unelte fabricate pe aceeași mașină și le-ați măsurat rezistența la rupere pentru inspecția mașinii și controlul calității. Dacă calculați valoarea medie a rezistenței la rupere, veți vedea că pentru majoritatea sculelor rezistența la rupere este apropiată de valoarea medie, dar există și scule cu valori mai mari și mai mici. Cu toate acestea, dacă calculați doar valoarea medie a rezistenței la rupere, această cifră nu vă va oferi informații despre eficacitatea controlului calității, deoarece câteva instrumente neobișnuit de puternice sau fragile pot crește sau scădea valoarea medie.

Funcții variabilitateȘi abateri standard indicați această problemă indicând cât de apropiate sunt valorile de medie. Pentru rezistența critică, un număr mai mic returnat de una dintre funcții indică faptul că procesele dumneavoastră de producție funcționează normal, deoarece unele dintre ele sunt de o măsură limitată, fiind peste sau sub medie.

O descriere detaliată a varianței și a abaterii standard depășește scopul acestui articol. Mai multe informații despre ambele funcții pot fi găsite pe site-urile web de statistici. Când utilizați funcții DispersiaȘi Deviație standard Amintiți-vă următoarele reguli.

Întrebare: Suma coloanelor din Access?


În general, sarcina este:
Calculați profitul depozitului pentru fiecare tip de produs pentru ultimul an.
Tipurile de produse sunt determinate de codul din tabelul „Nume”. (Adică vizualizare = nume)
Profitul este câmpul „Suma comandă” din tabelul „Comandă”.

Ca rezultat, trebuie să scoateți
Titlu -> Suma totală

Răspuns: Problema rezolvata.
Mulțumesc)

Întrebare: Mysql: Index prin suma coloanelor


Salutare tuturor.
Am început recent să învăț indecși în mysql. Am dat peste următoarea întrebare, răspunsul la care nu l-am găsit.
Există o interogare de selecție care implică o condiție bazată pe suma coloanelor, să spunem:
Cum să creați corect un index pentru o anumită condiție (col1+col2)?
Am presupus că se poate face așa:
SQL
1 CREATE INDEX col1col2 ON table1(col1+ col2) ;

Dar există îndoieli cu privire la corectitudinea acestei înregistrări.
Imi poate spune cineva cum sa fac corect?

Răspuns: Mulțumesc pentru sugestii pentru a rezolva problema.

Întrebare: Selectarea rândurilor de sus cu o anumită cantitate de coloană


Acolo este o masa
IDCantitate
1 50
2 100
3 50
4 20
5 60
6 20
7 100

unde Id 1 este cea mai nouă intrare, Id 7 este cea mai veche.
Trebuie să selectați rândurile de sus cu o sumă totală a coloanei „Cantitate” de cel puțin 250, adică rezultatul așteptat:
IDCantitate
1 50
2 100
3 50
4 20
5 60

Până acum am ajuns doar atât de departe:
SELECT * FROM ( SELECT SUM (Cantitate) OVER (ORDER BY Id ASC ) AS S, a.* FROM my_table a ) WHERE S< 250
Ca rezultat, primesc 1 linie mai puțin decât este necesar:

Acestea. vrei să spui că a funcționat cu RÂNDURI ÎNTRE PRECEDERE NEBORNATĂ ȘI 1 PRECEDERE fără NVL?
Meditează asupra a ceea ce va returna primul RÂND/RANGE cu 1 PRECEDENT.

SY.
Hmm, fără nvl pierde primul rând/gamă, totul este scos corect. Da, este greu să-l numești „funcționat”.

Intrebare: data accesului ora


Bună ziua, am o întrebare
Am creat o bază de date în accses 2016 și am întâlnit problema de care trebuie să țin cont de weekenduri și sărbători în coloana calculată.
coloana calculată este calculată ca suma coloanei „data de începere a călătoriei de afaceri” + „număr de zile lucrătoare”. Este necesar ca dupa adaugarea primilor doi termeni sa fie bifata ziua saptamanii si daca este joi se adauga 5 zile, daca vineri este 5 zile, daca sambata este 4 zile, iar daca celelalte zile sunt atunci 3 zile , iar după aceea numărul este introdus în tabelul creat pentru această coloană. Nu știu dacă este real sau nu, dar deja mi-am pierdut mințile, dacă știe cineva soluția, vă rog să-mi spuneți.

La mesaj este atașat un fișier. Dimensiune - 22Kb

Răspuns: stalkermen4884,
- cererea funcționează așa cum doriți?
-funcțiile sunt scrise în modul care sunt folosite în cerere (uitați-vă mai atent la ceea ce este scris în câmpurile în modul design) și folosesc câmpurile de cerere ca argumente (st-field[s],fin-field)
-dacă doriți ca perioada de călătorie să fie socotită inclusiv ultima zi în toate funcțiile, corectați i=0
- plasați un punct de întrerupere în interiorul funcției și puteți, executând-o pas cu pas, să vedeți cum funcționează.
-citește cărți (cel puțin tutoriale online) - totul este scris acolo (dacă citești cu atenție, analizând ceea ce este scris, vei înțelege totul - nu ți le voi repeta. Acest forum presupune că ai cunoștințe de bază)

Întrebare: Însumarea pe rând a unei coloane


Salutare tuturor!

Îmi cer scuze anticipat, dar nu înțeleg cum să calculez suma rând cu rând a unei coloane. Totul este simplu în Excel (anexat).
Cum se face acest lucru în acces?

Vă mulțumesc anticipat!

Răspuns: Mulțumesc foarte mult!

Adăugat după 23 de ore și 57 de minute
Continuând subiectul. Cer ajutor in optimizarea interogarii cu acumularea totalului.

Numărul de rânduri ZnachRURSum este de aproximativ 3000. Numărarea accesului durează foarte mult. Există vreo modalitate de a-l ajuta?

Ps: atunci toate aceste lucruri vor merge la mysql.

Întrebare: Suma coloanelor


Am mare nevoie de ajutor, trebuie sa ma asigur ca iau numele, costul si cantitatea din tabelele Produse, Servicii si Comenzi si la final afisez suma acestora in camp. Un exemplu de bază de date în sine este atașat în arhivă. Voi fi veșnic recunoscător; nu o pot face pe cont propriu.

Răspuns: Viaceslav I, am văzut și ce se poate face cu ajutorul unei forme subordonate, am încercat - chiar și melodramă.


Există un utilizator de masă

Vă rog spuneţi-mi)
Îmi cer scuze pentru afișarea tabelelor sub formă de imagini) Nu știu cum să folosesc editorul SQL aici.

Răspuns:

mesaj de la cweic

Din anumite motive, cererea dvs. nu funcționează.

Pot fi. Nu a verificat. O să verific acum.

mesaj de la cweic

Îmi poți spune te rog ce înseamnă a patra linie?

O selecție a coloanei SUM din tabelul reat_sum obținut printr-o subinterogare.

mesaj de la cweic

Și încă nu este clar, pe linia 16 este alias AS t1? Are asta vreo legătură cu primul tabel?

T1 este numele tabelului care va fi returnat ca rezultat al acestei interogări:

Întrebare: Cine cunoaște bine Access? Înregistrarea asigurării


„Formularul” numit „Înregistrare asigurări” în Access este format din mai multe câmpuri
-Cod client,
- codul de asigurare,
-numele complet al clientului,
- adresa clientului,
-Telefon,
- Codul de tarif,
-Data asigurarii,
-Suma de plata,
- Denumirea tarifului.

Trebuie să configurez un design astfel încât, selectând Codul Tarifului din caseta combinată, suma plății să fie calculată automat, adică Câmpul „Suma plată” este completat automat în conformitate cu tariful.

Mai mult decât atât, Codul Tarifar și Suma de Plată se află într-un tabel separat „Ratele de asigurare”, precum și în tabelul „Înregistrarea asigurărilor”, care este sursa sursă pentru „Formularul” „Înregistrarea asigurărilor”.

Oamenii vă rog ajutați, cine știe.

Răspuns: 1. În sursa liniilor de cod tarifar se adaugă o a 3-a coloană cu prețul tarifului, se indică faptul că sunt 3 coloane, se introduce codul (primul), se observă a doua (denumirea), prima și a treia sunt vizibile. nu este vizibil - aceasta este determinată de lățimea coloanelor (2cm; 0cm; 0cm). Toate acestea se află în constructor, proprietățile casetei combinate.
2. În cazul în care după actualizare, Prețului i se atribuie valoarea coloanei a 2-a (coloana a 3-a, numerotată de la 0 în VBA), acolo este scris prețul tarifului selectat.

Întrebare: Interogare pe coloane


Buna ziua.
Am pus o întrebare
Acum tema este similară doar cu coloanele.
Cum se face o cerere pentru a calcula, de exemplu, suma în coloane DIN 3 coloane
de exemplu, există o coloană O4 și multe astfel de coloane, de exemplu O5, O6, O7 și atât de multe
și se adună suma O4, O5... dar suma nu este totală, ci separat, ci într-un singur tabel
În esență, suma coloanelor de la O4 până la sfârșit (câte sunt chiar dacă adaugi altele noi)
Noul tabel ar trebui să conțină numele coloanei și suma acesteia.
Mult text, dar sper să fie clar)

Răspuns: alvk, ei bine, ești din ce în ce mai șocant cu cunoștințele tale de fiecare dată.

Întrebare: Cum se face o listă derulantă în Access într-un tabel conectat din MySql?


ÎNTREBARE:
Cum se face o listă derulantă în Access?
Care ar trebui să fie tabelul de director: coloane (tip) - ? lucruri.
Unde ar trebui (sau este recomandabil) să plasați directorul: în Accesați tabelul de referință sau într-un mod separat tabel de referință conectat din MySql?
Există și alte modalități mai inteligente de a îndeplini această sarcină?

NECESAR:
Faceți o listă derulantă în Access tabel conectat din MySql.
Caracteristicile listei derulante:
- numara poz.< 10штук
- conținut: OUT ATP POZIȚIA 1, OUT ATP POZIȚIA 2, OUT ATP POZIȚIA 3,... OUT ATP POZIȚIA 10
Datele din lista derulantă trebuie să provină de la:

sau

conform scenariului cel mai potrivit.

INSTALAT:
- COMP 1
- MySql este instalat din baza de date centrală.
- Baza de date (DB) are Tabel_1 cu următoarele coloane:

- COMP 2
- Accesul se conectează prin ODBC ca client la baza de date MySql.

TERMENI:
- Acces tabel de referință - Tabel de referință Nr. 1 (vezi captura de ecran);
- tabel de referință conectat din MySql - Tabel de referință nr. 2 (vezi captura de ecran);
- tabelul conectat din MySql - tabelul bazei de date client (vezi captura de ecran);

Răspuns: Indiferent dacă construiți o formă de la zero sau dezasamblați exemplul meu, timpul va fi același.

În bara de navigare, selectați tabelul principal. Pe panglica Creare, selectați butonul Formular. Expertul va crea un formular pentru tine cu toate câmpurile tabelului tău.

Comutați la modul design. Găsiți un câmp care ar trebui să ia valori dintr-o casetă combinată dintr-un director (nu contează dacă este atașat sau local - pentru acces, tabelele atașate în multe cazuri nu se pot distinge de cele locale, acesta este exact cazul).

Faceți clic dreapta pe acest câmp și selectați „convert field to” - „combo box”

În caseta combinată rezultată, modificați proprietățile:
Sursa datelor - aici scriem numele tabelului sau numele interogării sau textul interogării
Coloană legată - există un 1, de obicei așa ar trebui să fie (acesta este numărul coloanei cu un identificator sau cod, dacă nu este primul - puteți fie să modificați ordinea în cerere, fie să corectați numărul coloanei legate)
Numărul de coloane este de obicei 2, dar poate fi mai mare dacă este necesar
Lățimea coloanei - de obicei scrisă 0 LățimeCare este Necesar sau pur și simplu 0 - atunci coloana cu codul nu este vizibilă pe ecran, doar valorile sunt vizibile. Dacă aveți un număr diferit de coloane sau o ordine diferită, lățimile sunt ajustate în consecință.

Ei bine, asta-i tot. Câmpul poate fi folosit.

Adăugat după 6 minute

mesaj de la texnik-san

pentru acces, mesele unite sunt în multe cazuri imposibil de distins de cele locale

De fapt, de aceea nu există motive clare pentru care să nu risipiți Toate tabele într-o bază de date comună. În ceea ce privește comoditatea, dezvoltarea va fi în continuare aceeași. Și în funcționare, baza comună te va proteja de multe situații stupide.

De exemplu, Vasya a intrat accidental în cartea de referință și a șters toate valorile de acolo (sistemul a permis, cartea de referință este locală). Apoi mi-a fost teamă că nu mă vor certa și nu am spus nimic nimănui, doar m-am așezat și am completat din nou toate valorile. Textul se potrivește cu cel vechi. Dar Vasya nu știe că cheile sunt diferite. Apoi începe: „Am ales același lucru pe care l-am ales întotdeauna, iar programul scrie eroarea „nu există o astfel de valoare în tabelul legat”.” Crezi că asta nu se întâmplă? Personal, am călcat pe o astfel de greblă

Adăugat după 1 minut
Deci, dacă este posibil să faceți totul într-o singură bază de date și să configurați constrângeri de cheie străină care să asigure integritatea, această opțiune este de preferat.

În acest articol vom vorbi despre câmpurile calculate în interogările Access. O interogare, cum ar fi un tabel, poate efectua calcule pe valori numerice, șir sau date pentru fiecare înregistrare folosind date din unul sau mai multe câmpuri. Rezultatul calculului formează un nou câmp calculat în tabelul de interogări. Spre deosebire de câmpurile de tabel calculate, câmpurile calculate din tabelele bazei de date sursă nu creează câmpuri noi. De fiecare dată când se execută interogarea, se fac calcule pe baza valorilor câmpului curent.

Expresiile de câmp calculate pot folosi constante și funcții în plus față de numele câmpurilor. Ca rezultat al procesării unei expresii, se poate obține o singură valoare.

Sarcina 1. Tabelul PRODUCT are câmpurile PREț și RATE_TVA Calculați prețul cu TVA și comparați-l cu prețul obținut în câmpul calculat din tabelul Preț cu TVA.

  1. Creați o interogare de selectare în modul proiectare pentru tabelul PRODUCT. Trageți câmpurile NUME_TOV, PREȚ, RATE_TVA și Preț cu TVA în formularul de solicitare (Fig. 4.6).
  2. Pentru a calcula prețul inclusiv TVA, creați un câmp calculat scriind expresia [PRț]+[PRț]*[RATE_VAT] în celula goală a rândului Câmp.
  3. Pentru a selecta înregistrări cu o valoare mai mare de 5000 în câmpul calculat, introduceți > 5000 în linia Criterii
  4. După introducerea unei expresii, sistemul generează implicit numele câmpului calculat Expresia 1, care devine antetul coloanei din tabel cu rezultatele interogării. Acest nume va fi inserat înaintea expresiei [PRICE]+[PRICE]*[VAT_RATE]. Pentru fiecare câmp calculat nou din interogare, numărul expresiei crește cu unu. Numele câmpului calculat este separat de expresie prin două puncte. Pentru a schimba numele, plasați cursorul mouse-ului în câmpul calculat al formularului de cerere și faceți clic pe butonul dreapta al mouse-ului. Din meniul contextual, selectați Proprietăți(Proprietăți) și în linia Legendă introduceți un nou nume de câmp - Pret cu TVA1. Acum, în tabelul cu rezultatele interogării, acest nume va fi afișat în antetul coloanei calculate. Numele câmpului poate fi corectat și direct în formularul de solicitare.
  5. Pentru a afișa rezultatul interogării, faceți clic pe butonul A executa(Alergă) în grup rezultate(Rezultate). Câmpul calculat al tabelului și interogarea au aceleași valori.
  6. Modificați prețul produsului într-una dintre înregistrările de solicitare. Valorile din ambele câmpuri calculate vor fi recalculate instantaneu.
  7. Pentru a forma o expresie complexă într-un câmp calculat sau într-o condiție de selecție, este recomandabil să utilizați generatorul de expresii. Generatorul vă permite să selectați numele câmpurilor necesare în expresie din tabele, interogări, semne de operație și funcții. Eliminați expresia din câmpul calculat și utilizați generatorul pentru ao genera.
  8. Apelați Expression Builder făcând clic pe butonul Constructor(Constructor) în grup Configurare interogare(Configurare interogare) panglica Design sau prin selectare Construi(Build) în meniul contextual. Cursorul mouse-ului trebuie mai întâi poziționat în celula de introducere a expresiei.
  9. În partea stângă a ferestrei Generator de expresii(Expression Builder) (Fig. 4.7) selectați tabelul PRODUCT pe care se bazează interogarea. O listă a câmpurilor sale va fi afișată în partea dreaptă. Selectați secvențial câmpurile și operatorii necesari făcând dublu clic pe ele în expresie. Expresia va fi formată în partea de sus a ferestrei. Vă rugăm să rețineți că constructorul a indicat numele tabelului căruia îi aparține înaintea numelui câmpului și l-a separat de numele câmpului cu un semn de exclamare.
  10. Finalizați procesul de construire a unei expresii într-un câmp calculat făcând clic pe OK.
  11. Salvați cererea sub numele ― Preț cu TVA și închideți-o.
  12. Executați fișierul salvat selectându-l în zona de navigare și selectând Deschidere din meniul contextual.


Sarcina 2. Puteți utiliza funcții încorporate în câmpuri calculate și condiții de filtrare. Accesul are peste 150 de funcții definite.
Să fie necesar să selectați toate facturile pentru care s-a efectuat expedierea într-o anumită lună. În FACTURA, data expedierii este stocată în câmpul DATE_OTG cu tipul de date Data/Ora.

  1. Creați o interogare de selectare în modul de proiectare pentru tabelul FACTURĂ. Trageți câmpurile NOM_NAKL și CODE_SK în formular (Fig. 4.8).
  2. Creați un câmp calculat într-o celulă de rând goală Camp(Câmp) scriind acolo una dintre expresiile: Format([FACTURA]![DATA_DISPOSIȚIA];"mmmm") - această funcție va returna numele complet al lunii
    sau Format([INBOOK]![DISPOSITION_DATE];"mm") - această funcție va returna numărul lunii.
  3. Pentru a selecta facturile emise într-o anumită lună, în câmpul calculat din linia Condiție de selecție (Criterii), introduceți numele lunii, de exemplu martie (Fig. 4.8), sau numărul lunii, de exemplu 3 în conformitate cu parametrul în funcția Format.
  4. Completează-ți solicitarea făcând clic pe butonul A executa(Alergă) în grup rezultate(Rezultate) pe fila panglică Lucrul cu cereri | Constructor(Instrumente de interogare | Design).
  5. Scrieți funcția Month(INVOICE!DATE_OTG) în câmpul calculat și asigurați-vă că această funcție returnează numărul lunii extras din dată.
  6. Pentru a selecta toate rândurile aferente celui de-al doilea trimestru, în rândul Criterii, introduceți operatorul Între 4 și 6, care determină dacă valoarea expresiei se încadrează în intervalul specificat.
  7. Scrieți expresia MonthName(Month(INVOICE!DATE_OTG)) în câmpul calculat și asigurați-vă că funcția MonthName convertește numărul lunii în numele complet.


Pentru a consolida acest lucru, urmăriți tutorialul video.

Acest articol descrie cum se numără datele returnate de o interogare. De exemplu, într-un formular sau raport, puteți număra numărul de articole dintr-unul sau mai multe câmpuri sau controale de tabel. De asemenea, puteți calcula medii, puteți găsi cele mai mari și cele mai mici valori și cea mai veche și cea mai recentă dată. Access oferă, de asemenea, un instrument numit rând total care vă permite să numărați datele dintr-un tabel fără a modifica structura interogării.

Selectați acțiunea dorită

Metode de numărare a datelor

Puteți număra numărul de elemente dintr-un câmp (coloana de valoare) folosind funcția Număr. Funcţie Număr aparține unui număr de funcții numite funcții agregate. Funcțiile agregate efectuează calcule pe coloane de date și returnează o singură valoare. Pe langa functie Număr, Access are următoarele funcții agregate:

    Sumă să însumeze coloane de numere;

    In medie pentru a calcula media unei coloane de numere;

    Maxim pentru a găsi cea mai mare valoare dintr-un câmp;

    Minim pentru a găsi cea mai mică valoare dintr-un câmp;

    Deviație standard să evalueze răspândirea valorilor în raport cu valoarea medie;

    Dispersia pentru a calcula varianța statistică a tuturor valorilor dintr-o coloană.

Accesul oferă două moduri de a adăuga o funcție Numarași alte funcții agregate în interogare. Puteți:

    Deschideți interogarea în vizualizarea Foaie de date și adăugați un rând total. Un rând total vă permite să utilizați funcții agregate pe una sau mai multe coloane în rezultatele unei interogări fără a fi nevoie să-i schimbați structura.

    Creați o interogare finală. Interogarea rezumat calculează subtotaluri pentru grupuri de înregistrări. De exemplu, dacă doriți să calculați un subtotal al tuturor vânzărilor în funcție de oraș sau de trimestru, veți utiliza o interogare rezumat pentru a grupa înregistrările după categorie și apoi însumați toate vânzările. Pe de altă parte, puteți utiliza un rând total pentru a calcula un total general pentru una sau mai multe coloane (câmpuri) de date.

Notă: Următoarele secțiuni ale acestui articol descriu în detaliu utilizarea funcției. Sumă, dar rețineți că puteți utiliza alte funcții agregate în rândurile și interogările totale. Pentru mai multe informații despre utilizarea altor funcții agregate, consultați secțiunea de mai jos.

Pentru mai multe informații despre modalitățile de utilizare a altor funcții agregate, consultați .

Următoarele secțiuni descriu pașii pe care trebuie să îi urmați pentru a adăuga un rând total și descriu cum să utilizați o interogare totală pentru a număra datele. Vă rugăm să rețineți că funcția Număr funcționează cu mai multe tipuri de date decât alte funcții agregate. Funcţie Număr poate fi utilizat pentru orice tip de câmp, cu excepția celor care conțin date scalare complexe, care se repetă, cum ar fi un câmp de listă cu mai multe valori.

Pe de altă parte, multe funcții agregate funcționează numai cu date din câmpuri care au un anumit tip de date. De exemplu, funcția Sumă Funcționează numai cu tipuri de date Număr, Real și Monedă. Pentru mai multe informații despre tipurile de date necesare pentru fiecare funcție, consultați secțiunea de mai jos.

Pentru informații generale despre tipurile de date, consultați Modificarea tipului de date pentru un câmp.

Numărarea datelor folosind rândul total

Pentru a adăuga un rând total la o interogare, deschideți-l în vizualizarea Foaie de date, adăugați rândul și apoi selectați funcția Număr sau o altă funcție agregată, de exemplu Sumă, Minim, Maxim sau In medie. Această secțiune explică cum să creați o interogare simplă de selectare și să adăugați un rând total.

Crearea unei interogări de selectare simplă

Adăugarea unui rând total

Ascundeți rândul total

    Pe fila Acasă in grup Postări faceți clic pe butonul Rezultate.

Pentru mai multe informații despre utilizarea unui rând total, consultați Afișarea totalurilor după coloană într-un tabel.

Numărarea datelor utilizând o interogare de rezumat

Când trebuie să numărați unele sau toate înregistrările returnate de o interogare, puteți utiliza o interogare totală în loc de un rând total. De exemplu, puteți număra numărul total de tranzacții sau numărul de tranzacții dintr-un anumit oraș.

De obicei, o interogare rezumat este utilizată în locul unui rând total atunci când doriți să utilizați valoarea rezultatului într-o altă parte a bazei de date, cum ar fi un raport.

Numărarea tuturor înregistrărilor dintr-o interogare

Numărarea intrărilor într-un grup sau categorie

Referință pentru funcțiile agregate

Următorul tabel listează și explică funcțiile de agregare Access pe care le puteți utiliza în rândurile și interogările totale. Rețineți că Access are mai multe funcții agregate pentru interogări decât pentru rândurile totale. În plus, atunci când lucrați cu un proiect Access (o bază de date Access externă care se conectează la o bază de date Microsoft SQL Server), puteți utiliza setul îmbunătățit de funcții agregate furnizate de SQL Server. Pentru mai multe informații despre acestea, consultați Cărți online Microsoft SQL Server.

Funcţie

Descriere

Tipuri de date acceptate

Sumă

Însumează elementele dintr-o coloană. Potrivit numai pentru date numerice și monetare.

In medie

Calculează valoarea medie pentru o coloană. Coloana trebuie să conțină valori numerice, monetare sau date sau ore. Funcția ignoră valorile goale.

Număr

Numărează numărul de elemente dintr-o coloană.

Toate tipurile de date, cu excepția datelor scalare complexe care se repetă, cum ar fi o coloană de listă cu mai multe valori.

Pentru mai multe informații despre listele cu valori multiple, consultați Cele mai bune practici pentru crearea și ștergerea câmpurilor cu valori multiple din tutorialele Câmpuri cu valori multiple.

Maxim

Returnează elementul cu cea mai mare valoare. Pentru datele text, cea mai mare valoare este ultima valoare din alfabet, iar Access nu face distincție între majuscule și minuscule. Funcția ignoră valorile goale.

„Număr”, „Real”, „Monetă”, „Dată/Oră”

Minim

Returnează elementul cu cea mai mică valoare. Pentru datele text, cea mai mică valoare este prima valoare alfabetică, iar Access nu face distincție între majuscule și minuscule. Funcția ignoră valorile goale.

„Număr”, „Real”, „Monetă”, „Dată/Oră”

Deviație standard

Arată cât de mult se abat valorile de la medie.

Pentru mai multe informații despre această caracteristică, consultați articolul Afișați totalurile pentru o coloană dintr-un tabel.

„Număr”, „Real”, „Monetă”

Dispersia

Calculează varianța statistică pentru toate valorile dintr-o coloană. Potrivit numai pentru date numerice și monetare. Dacă tabelul conține mai puțin de două rânduri, Access returnează o valoare goală.

Pentru mai multe informații despre funcțiile pentru calcularea variației, consultați Afișarea totalurilor coloanelor într-un tabel.

„Număr”, „Real”, „Monetă”

Un exemplu de calcul al sumei totale într-un tabel de bază de date Microsoft Access fără a utiliza o interogare SQL

Există momente când într-un tabel de bază de date trebuie să calculați suma valorilor numerice ale unei anumite coloane. Există diferite metode de calcul pentru aceasta, dintre care una se bazează pe folosind interogarea SQL corespunzătoare.

În această sarcină, folosind un tabel Microsoft Access ca exemplu, suma totală este calculată fără a utiliza o interogare SQL. În plus, se calculează media aritmetică a valorilor celulelor coloanei specificate.

Folosind acest exemplu, puteți crea orice calcul numeric pe mai multe înregistrări ale unei anumite coloane.

Sarcina

Ca rezultat, ConnectionString este format în componenta ADOConnection1 (Fig. 2). Această linie specifică tipul furnizorului de date și calea completă către fișierul bazei de date.

Orez. 2. ConnectionString al componentei ADOConnection1

  1. Configurarea componentelor ADOConnection1, ADOTable1, DataSource1, DBGrid1.

Pentru a afișa un tabel de bază de date, trebuie să configurați următoarele proprietăți ale componentelor:

– în componenta ADOConnection1, proprietatea LoginPrompt = „false” (Fig. 3) (anularea solicitării de nume de utilizator și parolă pentru accesarea bazei de date);

– în componenta ADOTable1, proprietatea Connection = „ADOConnection1” (Fig. 4);

– în componenta DataSource1, proprietatea DataSet = „ADOTable1” (Fig. 5);

– în componenta DBGrid1, proprietatea DataSource = „DataSource1” (Fig. 6);

– în componenta ADOTable1, proprietatea TableName = „Worker” (Fig. 7);

– în componenta DBGrid1, din proprietatea Opțiuni, setați opțiunea dgEditing = false (interzicerea introducerii datelor în celulele tabelului direct din grila DBGrid1) (Fig. 8).

Orez. 3. Proprietatea LoginPrompt a componentei ADOConnection1

Orez. 4. Proprietatea de conectare a componentei ADOTable1

Orez. 5. Proprietatea DataSet a componentei DataSource1

Orez. 6. Proprietatea DataSource a componentei DBGrid1

Orez. 7. Proprietatea TableName a componentei ADOTable1

Orez. 8. Opțiunea dgEditing a proprietății Opțiuni a componentei DBGrid1

  1. Activarea tabelului.

Pentru a afișa datele în tabel, trebuie să efectuați următorii pași (Fig. 9):

– selectați tabelul ADOTable1;

– proprietate Active = adevărat.

După aceasta, datele din tabel vor fi afișate în DBGrid1.

Orez. 9. Proprietatea activă a componentei ADOTable1

  1. Setarea dimensiunilor și formelor componentelor.

Următorul pas este să ajustați dimensiunile și pozițiile componentelor pe formular, așa cum se arată în Figura 10.

Orez. 10. Formular principal de cerere

  1. Ascunderea câmpului ID_Worker în DBGrid1.

Pentru ca tabelul afișat să aibă aspectul corect, trebuie să ascundeți câmpul ID_Worker, care este un câmp cheie. Într-un tabel, acest câmp este un contor. La adăugarea unei noi înregistrări, valoarea din acest câmp este generată automat (mărită cu 1).

Mai întâi trebuie să apelați editorul de câmp („Fields Editor...”) al componentei ADOTable1 din meniul contextual (Fig. 11).

Orez. 11. Apelarea editorului de câmp al componentei ADOTable1

Se va deschide fereastra Form1.ADOTable1. În această fereastră, folosind mouse-ul, trebuie să apelați meniul contextual. În meniul contextual, selectați comanda „Adăugați toate câmpurile”.

Ca rezultat, fereastra editorului va arăta așa cum se arată în Figura 12.

Orez. 12. Editor de câmp

Editorul de câmpuri Form1.ADOTable1 afișează toate câmpurile din tabelul Worker. Pentru a șterge câmpul ID_Worker, trebuie să faceți clic dreapta pe linia ID_Worker și să selectați comanda Delete din meniul contextual. După aceasta, puteți închide editorul.

Ca rezultat, doar două câmpuri vor fi afișate în tabelul DBGrid1 (Fig. 13).

Orez. 13. Afișarea unui tabel Worker cu două câmpuri

  1. Setați filtrul de ieșire la două zecimale în câmpul Salariu.

Pentru ca valoarea sumei (2 zecimale) să fie corect afișată în câmpul Salariu, trebuie să efectuați următorii pași.

Selectați componenta ADOTable1. Apelați editorul de câmpuri „Editor de câmpuri...” așa cum este descris la pasul 6. Ca rezultat, se va deschide o listă de două câmpuri Nume și Salariu. Selectați linia numită Salariu. Un obiect numit ADOTable1Salary va fi activat în Object Inspector.

Următorul pas este să setați câmpul „Display Format” din Object Inspector la „0.00” (Fig. 14).

Orez. 14. Setarea formatului de ieșire în câmpul Salary al obiectului ADOTable1

După parcurgerea pașilor, câmpul Salariu din tabel va fi afișat cu o precizie de 2 zecimale.

  1. Introducerea variabilelor interne.

Pentru a salva datele de sumă și medie aritmetică, trebuie să introduceți variabile interne numite sum și avg în textul clasei de formular TForm1.

Variabilele sunt introduse în secțiunea privată. Fragmentul de cod pentru clasa de formular TForm1 arată astfel:

... tip TForm1 = clasă(TForm) ADOConnection1: TADOConnection; DataSource1: TDataSource; ADOTable1: TADOTable; DBGrid1: TDBGrid; StaticText1: TStaticText; StaticText2: TStaticText; StaticText3: TStaticText; ADOTable1Name: TWideStringField; ADOTable1Salary: TFloatField; procedură FormActivate(Expeditor: TObject); procedură FormClose(Sender: TObject; var Action: TCloseAction); privat( Declarații private ) sum:real; // suma medie:real; // in medie public(Declarații publice) Sfârşit; ...
  1. Programarea evenimentului de activare formular.

De îndată ce utilizatorul descarcă programul, trebuie să calculați imediat valorile sumei și ale mediei aritmetice din tabele.

Prin urmare, trebuie să programați evenimentul OnActivate al Form1. Evenimentul OnActivate va fi apelat când formularul este activat după lansarea programului pentru execuție.

Un exemplu de programare a evenimentelor în Delphi este descris în detaliu.

În cazul nostru, handlerul de evenimente arată astfel:

procedură TForm1.FormActivate(Expeditor: TObject); var f:TFfield; // variabilă suplimentară de tip „Field” ÎNCEPE // 1. Verificarea dacă există înregistrări în tabel dacă ADOTable1.RecordCount = 0 apoi Ieșire; // 2. Dezactivează vizualizarea în DBGrid1 ADOTable1.DisableControls; // 3. Repetați peste toate înregistrările din tabelul Worker // 3.1. Accesați prima intrare ADOTabel1.Primul; // 3.2. Resetați suma la zero suma:= 0; // 3.3. Luați valoarea salariului din prima înregistrare f:= ADOTable1.FieldByName("Salariu"); // 3.4. Buclă prin înregistrările dintr-un tabel // - verifică dacă s-a ajuns la sfârșitul tabelului in timp ce ADOTabel1.Eof<>Adevărat do ÎNCEPE // 3.4.1. Măriți suma suma:= suma + f.Valoare; // 3.4.2. Accesați următoarea intrare ADOTable1.Next; Sfârşit; // 4. Calculați media aritmetică avg:= sum / ADOTable1.RecordCount; // 5. Completați linii de tip TStaticText StaticText1.Caption:= "Suma: " + FloatToStr(sum, ffFixed, 8, 2); StaticText2.Caption:= "Salariu mediu: " + FloatToStr(avg, ffFixed, 8, 2); // 6. Activați vizualizarea în DBGrid ADOTable1.EnableControls; Sfârşit;

Să explicăm câteva fragmente de cod.

Metodele DisableControls și EnableControls sunt responsabile pentru dezactivarea și activarea controalelor vizuale conectate la un set de date (bază de date). Apelarea metodei DisableControls poate accelera semnificativ procesul de iterare prin înregistrări, deoarece va împiedica aplicația să piardă timp redesenând conținutul controlului DBGrid1 cu fiecare modificare a înregistrărilor.

Proprietate

ADOTable1.RecordCount

indică numărul de înregistrări din tabel.

ADOTabel1.În primul rând

setează prima intrare de tabel activă.

ADOTable1.FieldByName()

vă permite să obțineți un obiect de tip TField pentru un anumit câmp. Apoi, în acest obiect puteți obține informații din înregistrarea curentă. În program, pentru a accesa valorile înregistrărilor câmpului Salariu, se utilizează o variabilă suplimentară f de tip TField. Pentru a citi valoarea din înregistrarea curentă a câmpului Salariu, trebuie doar să sunați la operator

f.Valoare

Proprietate

ADOTabel1.Eof

devine adevărată dacă se ajunge la sfârșitul mesei.

ADOTable1.Next

implementează tranziția la următoarea înregistrare a tabelului.

Rezultatul sumei este afișat în proprietatea Caption a componentei StaticText1.

Valoarea medie aritmetică este afișată în proprietatea Caption a componentei StaticText2.

  1. Lansarea aplicației pentru execuție.

Acum puteți rula aplicația.