Sažimanje u izvještajima. Izračunata polja u Access upitima. Vrste agregata koje možete dodati svom izvješću

Redak Ukupno u Accessu omogućuje vam brz pregled sažetka podataka u stupcima tablice. Na primjer, ako tablici koja sadrži pojedinosti o kupnji dodate redak Ukupno, možete prikazati iznos prodaje, ukupan broj jedinica artikla ili broj kupljenih artikala.

Bilješka: Da biste prikazali zbroj vrijednosti stupca, morate postaviti vrstu podataka stupca na Numeric, Fractional ili Currency. Za nenumeričke stupce možete odabrati samo vrstu sažetka Broj vrijednosti.

Dodavanje retka "Ukupno".

Odabir ukupne vrste

Nakon dodavanja linije rezultate odabirete vrstu ukupnog prikaza za svaki stupac. Na primjer, agregati kao što su sume mogu se prikazati kada je tip podataka broj, decimalni ili valuta. Brojanje vrijednosti moguće je ako je vrsta podataka tekstualna vrijednost.

Neka tablica u ovom primjeru prikaže zbroj vrijednosti u stupcima Nabavna cijena I Kupljeni artikli i ukupno za stupac Položaj kao što je prikazano na slici ispod.

Kako rade Sum i druge agregatne funkcije

Skupne funkcije izvode izračune na stupcima podataka i vraćaju jedan rezultat. Mogu biti korisni ako trebate izračunati jednu vrijednost, kao što je zbroj ili prosjek. Imajte na umu da se agregatne funkcije primjenjuju na stupce podataka. Ovo se može činiti očiglednim, ali kada dizajnirate i koristite baze podataka, obično se usredotočite na retke podataka i pojedinačne zapise tako da korisnici mogu unijeti podatke u polje, pomaknuti kursor desno ili lijevo da popune sljedeće polje, itd. Suprotno tome, vi koristiti agregatne funkcije, fokusirajući se na skupine zapisa u stupcima.

Recimo da koristite Access za pohranu i praćenje podataka o prodaji. Pomoću agregatnih funkcija možete izračunati broj prodanih artikala u jednom stupcu, ukupnu prodaju u drugom i prosječnu prodaju za svaki artikl u trećem.

Tablica u nastavku opisuje Accessove agregatne funkcije koje su dostupne u retku Ukupno. Upamtite da u Accessu postoje i druge agregatne funkcije, ali one se koriste u upitima.

Funkcija

Opis

Podržane vrste podataka

Dostupno u retku "Ukupno"?

Izračunava prosječnu vrijednost za stupac. Stupac mora sadržavati numeričke, novčane vrijednosti ili vrijednosti datuma ili vremena. Funkcija zanemaruje prazne vrijednosti.

Broj vrijednosti

Broji broj elemenata u stupcu.

Sve vrste podataka osim složenih ponavljajućih skalarnih podataka kao što je stupac popisa s više vrijednosti. Za više informacija o popisima s više vrijednosti pogledajte Najbolje prakse za stvaranje i brisanje polja s više vrijednosti u vodičima za polja s više vrijednosti.

Maksimalna vrijednost

Vraća element s najvećom vrijednošću. Za tekstualne podatke, najveća vrijednost je zadnja vrijednost u abecedi, a Access ne razlikuje velika i mala slova. Funkcija zanemaruje prazne vrijednosti.

, "Datum i vrijeme"

Minimalna vrijednost

Vraća element s najmanjom vrijednošću. Za tekstualne podatke, najmanja vrijednost je prva abecedna vrijednost, a Access ne razlikuje velika i mala slova. Funkcija zanemaruje prazne vrijednosti.

"Numerički", "Realni", "Valuta", "Datum i vrijeme"

Standardna devijacija

"Numerički", "Realni", "Valuta"

Zbraja elemente u stupcu. Prikladno samo za numeričke i monetarne podatke.

"Broj", "Realno", "Valuta"

Disperzija

Izračunava statističku varijancu za sve vrijednosti u stupcu. Prikladno samo za numeričke i monetarne podatke. Ako tablica sadrži manje od dva retka, Access vraća praznu vrijednost. Za više informacija o funkciji varijance pogledajte sljedeći odjeljak.

"Numerički", "Realni", "Valuta"

Saznajte više o funkcijama standardne devijacije i varijance

Funkcije Standardna devijacija I Disperzija izračunavaju se statističke vrijednosti. Konkretno, koriste se za vrijednosti koje leže u blizini njihove prosječne vrijednosti i poštuju zakon normalne distribucije (nalaze se na Gaussovoj krivulji).

Pretpostavimo da ste nasumično odabrali 10 alata izrađenih na istom stroju i izmjerili njihovu čvrstoću na lom za pregled stroja i kontrolu kvalitete. Ako izračunate prosječnu vrijednost čvrstoće loma, vidjet ćete da je za većinu alata čvrstoća loma blizu prosječne vrijednosti, ali postoje i alati s višim i nižim vrijednostima. Međutim, ako izračunate samo prosječnu vrijednost čvrstoće loma, ova brojka vam neće dati nikakvu informaciju o učinkovitosti kontrole kvalitete, budući da nekoliko neobično jakih ili krhkih alata može povećati ili smanjiti prosječnu vrijednost.

Funkcije varijabilnost I standardne devijacije naznačite ovaj problem naznakom koliko su vrijednosti blizu srednje vrijednosti. Za kritičnu snagu, manji brojevi koje vraća jedna od funkcija pokazuju da vaši proizvodni procesi rade normalno, budući da su neki od njih ograničenog opsega, iznad ili ispod prosjeka.

Detaljan opis varijance i standardne devijacije je izvan opsega ovog članka. Više informacija o objema značajkama možete pronaći na web stranicama za statistiku. Prilikom korištenja funkcija Disperzija I Standardna devijacija Upamtite sljedeća pravila.

Pitanje: Zbroj stupaca u Accessu?


Općenito, zadatak je:
Izračunajte skladišnu dobit za svaku vrstu proizvoda za prošlu godinu.
Vrste proizvoda određene su šifrom iz tablice "Naziv". (Odnosno, pogled = ime)
Profit je polje "Iznos narudžbe" iz tablice "Narudžba".

Kao rezultat toga, trebate izlaz
Naslov -> Ukupni iznos

Odgovor: Problem riješen.
Hvala vam)

Pitanje: Mysql: Indeks prema zbroju stupaca


Bok svima.
Nedavno sam počeo učiti indekse u mysqlu. Naišao sam na sljedeće pitanje na koje nisam mogao pronaći odgovor.
Postoji upit za odabir koji uključuje uvjet temeljen na zbroju stupaca, recimo:
Kako pravilno kreirati indeks za zadani uvjet (kol.1+kol.2)?
Pretpostavio sam da se to može ovako:
SQL
1 CREATE INDEX col1col2 ON table1(col1+ col2) ;

Ali postoje sumnje u ispravnost ove snimke.
Može li mi netko reći kako to ispravno učiniti?

Odgovor: Hvala na prijedlozima za rješavanje problema.

Pitanje: Odabir gornjih redaka s određenom količinom stupca


Postoji stol
iskaznicaKoličina
1 50
2 100
3 50
4 20
5 60
6 20
7 100

gdje je Id 1 najnoviji unos, Id 7 je najstariji.
Morate odabrati gornje retke s ukupnim zbrojem stupca "Količina" od najmanje 250, odnosno očekivani rezultat:
iskaznicaKoličina
1 50
2 100
3 50
4 20
5 60

Do sada sam stigao samo do ovoga:
SELECT * FROM ( SELECT SUM (Količina) OVER (ORDER BY Id ASC ) AS S, a.* FROM my_table a ) WHERE S< 250
Kao rezultat, dobivam 1 red manje nego što je potrebno:

Oni. misliš li da je radio s REDOVIMA IZMEĐU NEOGRANIČENOG PRETHODNOG I 1 PRETHODNOG bez NVL-a?
Meditirajte o tome što će vratiti prvi RET/RANG s 1 PRETHODNIM.

SY.
Hmm, bez nvl-a gubi prvi red/raspon, sve ostalo se ispisuje ispravno. Da, teško je to nazvati "radilo".

Pitanje: datum pristupa vrijeme


Dobar dan, imam pitanje
Kreirao sam bazu podataka u accses 2016 i naišao na problem da moram uzeti u obzir vikende i praznike u izračunatom stupcu.
izračunati stupac izračunava se kao zbroj stupca "datum početka službenog putovanja" + "broj radnih dana". Potrebno je da se nakon dodavanja prva dva termina čekira dan u tjednu i ako je četvrtak dodaje se 5 dana, ako je petak 5 dana, ako je subota 4 dana, a ako su ostali dani onda 3 dana , a nakon toga broj se upisuje u tablicu kreiranu za ovaj stupac. Ne znam je li ovo stvarno ili nije, ali već sam poludio, ako netko zna rješenje, neka mi kaže.

Datoteka je priložena poruci. Veličina - 22Kb

Odgovor: stalkermen4884,
- radi li zahtjev kako želite?
-u modulu su zapisane funkcije koje se koriste u zahtjevu (pogledajte detaljnije što piše u poljima u modu dizajna) i koristite polja zahtjeva kao argumente (st-field[s],fin-field)
-ako želite da se razdoblje putovanja računa uključujući zadnji dan u svim funkcijama, ispravite i=0
- postavite prijelomnu točku unutar funkcije i možete, izvršavajući je korak po korak, vidjeti kako radi.
-čitajte knjige (barem tutorijale online) - tamo sve piše (ako promišljeno čitate, analizirajući napisano, sve ćete shvatiti - neću vam prepričavati. Ovaj forum podrazumijeva da imate osnovno znanje)

Pitanje: Zbrajanje stupca po redu


Bok svima!

Unaprijed se ispričavam, ali ne razumijem kako izračunati zbroj stupca red po red. U Excelu je sve jednostavno (u prilogu).
Kako se to radi u pristupu?

Hvala unaprijed!

Odgovor: Hvala vam puno!

Dodano nakon 23 sata 57 minuta
Nastavak teme. Molim za pomoć u optimizaciji upita sa akumulacijom totala.

Broj redaka ZnachRURSum je oko 3000. Brojanje pristupa traje jako dugo. Postoji li način da mu se pomogne?

Ps: onda će sve ovo ići u mysql.

Pitanje: Zbroj stupaca


Stvarno mi treba pomoć, moram paziti da uzmem naziv, cijenu i količinu iz tablica Proizvodi, Usluge i Narudžbe i na kraju ispišem njihov iznos u polju. Primjer same baze je priložen u arhivi. Bit ću vam vječno zahvalan; ne mogu to učiniti sam.

Odgovor: Vjačeslav I, vidio sam i što se može učiniti uz pomoć podređenog oblika, pokušao sam - čak i melodramu.


Postoji tablica Korisnik

Molim te reci mi)
Ispričavam se što prikazujem tablice u obliku slika) Ne znam kako koristiti SQL editor ovdje.

Odgovor:

Poruka od cweic

Iz nekog razloga vaš zahtjev ne funkcionira.

Može biti. Nisam provjerio. Sad ću provjeriti.

Poruka od cweic

Možete li mi, molim vas, reći što znači četvrti redak?

Odabir stupca SUM iz tablice reat_sum dobivene podupitom.

Poruka od cweic

I dalje nije jasno, u liniji 16 je alias AS t1? Ima li to veze s prvom tablicom?

T1 je naziv tablice koja će biti vraćena kao rezultat ovog upita:

Pitanje: Tko dobro poznaje Access? Prijava osiguranja


"Obrazac" pod nazivom "Registracija osiguranja" u Accessu sastoji se od nekoliko polja
- Šifra klijenta,
- kod osiguranja,
- puno ime i prezime naručitelja,
- Adresa klijenta,
-Telefon,
- tarifna oznaka,
- datum osiguranja,
- Iznos uplate,
- Naziv tarife.

Moram postaviti dizajn tako da odabirom Tarifne šifre iz kombiniranog okvira automatski izračunava iznos plaćanja, tj. Polje “Iznos uplate” popunjava se automatski u skladu s tarifom.

Štoviše, tarifna oznaka i iznos uplate nalaze se u posebnoj tablici „Stope osiguranja“, kao i u tablici „Prijava u osiguranje“, koja je izvorni izvor za „Obrazac“ „Prijava u osiguranje“.

Ljudi molim vas pomozite tko zna.

Odgovor: 1. U izvoru redaka tarifne šifre dodan je 3. stupac s tarifnom cijenom, naznačeno je da postoje 3 stupca, šifra (prvi) je umetnuta, drugi (oznaka) je vidljiv, prvi i treći su nije vidljivo - to je određeno širinom stupaca (2cm; 0cm; 0cm). Sve se to nalazi u konstruktoru, svojstvima kombiniranog okvira.
2. U slučaju da se nakon ažuriranja Cijeni dodijeli vrijednost 2. stupca (3. stupac, numeriran od 0 u VBA), tu je ispisana cijena odabrane tarife.

Pitanje: Upit po stupcima


Zdravo.
postavio sam pitanje
Sada je tema slična samo s kolumnama.
Kako napraviti zahtjev za izračunavanje, na primjer, iznosa u stupcima IZ 3 stupca
na primjer, postoji stupac O4 i mnogo takvih stupaca, na primjer O5, O6, O7 i toliko
i zbrojite zbroj O4, O5... ali zbroj nije ukupan nego zasebno ali u jednoj tablici
U biti zbroj stupaca od O4 do kraja (koliko ih ima čak i ako dodate nove)
Nova tablica treba sadržavati naziv stupca i njegov iznos.
Puno teksta, ali nadam se da je jasno)

Odgovor: alvk, pa ti svaki put sve više šokiraš svojim znanjem.

Pitanje: Kako napraviti padajući popis u Accessu u povezanoj tablici iz MySql-a?


PITANJE:
Kako napraviti padajući popis u Accessu?
Kakva bi trebala biti tablica imenika: stupci (tip) - ? stvari.
Gdje treba (ili je preporučljivo) smjestiti imenik: u Pristup referentnoj tablici ili u zasebnom povezana referentna tablica iz MySql-a?
Postoje li drugi pametniji načini da se izvrši ovaj zadatak?

POTREBAN:
Napravite padajući popis u Accessu povezana tablica iz MySql-a.
Karakteristike padajućeg popisa:
- brojati poz.< 10штук
- sadržaj: IZLAZNA ATP POZICIJA 1, IZLAZNA ATP POZICIJA 2, IZLAZNA ATP POZICIJA 3,... IZLAZNA ATP POZICIJA 10
Podaci u padajućem popisu moraju potjecati iz:

ili

prema najprikladnijem scenariju.

INSTALIRANO:
- KOMP 1
- MySql se instalira iz centralne baze podataka.
- Baza podataka (DB) ima Tablicu_1 sa sljedećim stupcima:

- KOMP 2
- Access se povezuje preko ODBC-a kao klijent na MySql bazu podataka.

POJMOVI:
- Pristup referentnoj tablici - Referentna tablica br. 1 (pogledajte snimak zaslona);
- povezana referentna tablica iz MySql - Referentna tablica br. 2 (pogledajte snimak zaslona);
- povezana tablica iz MySql - tablica baze podataka klijenta (pogledajte snimak zaslona);

Odgovor: Bilo da gradite obrazac od nule ili rastavljate moj primjer, vrijeme će biti isto.

U navigacijskoj traci odaberite glavnu tablicu. Na vrpci Stvori odaberite gumb Obrazac. Čarobnjak će za vas stvoriti obrazac sa svim poljima vaše tablice.

Prebacite se na način dizajna. Pronađite polje koje bi trebalo preuzeti vrijednosti iz kombiniranog okvira iz imenika (nije bitno je li priloženo ili lokalno - za pristup, priložene tablice u mnogim se slučajevima ne razlikuju od lokalnih, to je upravo slučaj).

Desnom tipkom miša kliknite ovo polje i odaberite "pretvori polje u" - "kombo okvir"

U rezultirajućem kombiniranom okviru promijenite svojstva:
Izvor podataka - ovdje pišemo naziv tablice ili naziv upita ili tekst upita
Povezani stupac - postoji 1, obično tako treba biti (ovo je broj stupca s identifikatorom ili kodom, ako nije 1. - možete promijeniti redoslijed u zahtjevu ili ispraviti broj povezanog stupca)
Broj stupaca je obično 2, ali po potrebi može biti i više
Širina stupca - obično se piše 0; Širina koja je neophodna ili jednostavno 0 - tada se stupac s kodom ne vidi na ekranu, vidljive su samo vrijednosti. Ako imate drugačiji broj stupaca ili drugačiji redoslijed, širine se prilagođavaju u skladu s tim.

Pa, to je sve. Polje se može koristiti.

Dodano nakon 6 minuta

Poruka od texnik-san

za pristup, spojene tablice se u mnogim slučajevima ne razlikuju od lokalnih

Zapravo, zato nema jasnih razloga zašto ne trošiti svi tablice u jednoj zajedničkoj bazi podataka. Što se tiče pogodnosti, razvoj će i dalje biti isti. A u radu, zajednička baza će vas zaštititi od mnogih glupih situacija.

Na primjer, Vasya je slučajno ušao u referentnu knjigu i izbrisao sve vrijednosti tamo (sustav je to dopustio, referentna knjiga je lokalna). Tada sam se uplašio da će me grditi i nikome nisam ništa rekao, samo sam sjeo i ponovo upisao sve vrijednosti. Tekst odgovara starom. Ali Vasja ne zna da su ključevi drugačiji. Zatim počinje: “Odabrao sam isto što sam uvijek birao, a program ispisuje pogrešku “nema te vrijednosti u povezanoj tablici”.” Mislite li da se to ne događa? Osobno sam stao na takve grablje

Dodano nakon 1 minute
Dakle, ako je moguće učiniti sve u jednoj bazi podataka i postaviti ograničenja stranog ključa koja osiguravaju integritet, ova je opcija poželjnija.

U ovom ćemo članku govoriti o izračunatim poljima u Access upitima. Upit, poput tablice, može izvoditi izračune na numeričkim, nizovnim ili datumskim vrijednostima za svaki zapis koristeći podatke iz jednog ili više polja. Rezultat izračuna tvori novo izračunato polje u tablici upita. Za razliku od izračunatih polja tablice, izračunata polja u tablicama izvorne baze podataka ne stvaraju nova polja. Svaki put kad se upit izvrši, izračuni se rade na temelju trenutnih vrijednosti polja.

Izrazi izračunatog polja mogu koristiti konstante i funkcije uz nazive polja. Kao rezultat obrade izraza može se dobiti samo jedna vrijednost.

Zadatak 1. Tablica PROIZVOD ima polja CIJENA i STOPA_PDV Izračunajte cijenu s PDV-om i usporedite je s cijenom dobivenom u izračunatom polju tablice Cijena s PDV-om.

  1. Stvorite upit za odabir u načinu dizajna za tablicu PRODUCT. Povucite polja NAME_TOV, PRICE, RATE_VAT i Cijena s PDV-om u obrazac zahtjeva (Slika 4.6).
  2. Za izračun cijene s PDV-om kreirajte izračunato polje tako da upišete izraz [CIJENA]+[CIJENA]*[STOPA_PDV] u praznu ćeliju retka polja.
  3. Za odabir zapisa s vrijednošću većom od 5000 u izračunatom polju unesite > 5000 u retku Kriteriji
  4. Nakon unosa izraza, sustav prema zadanim postavkama generira naziv izračunatog polja Izraz 1, koji postaje naslov stupca u tablici s rezultatima upita. Ovaj naziv bit će umetnut prije izraza [CIJENA]+[CIJENA]*[STOPA_PDV]. Za svako novo izračunato polje u upitu, broj izraza povećava se za jedan. Naziv izračunatog polja odvojen je od izraza dvotočkom. Za promjenu naziva postavite kursor miša u izračunato polje obrasca zahtjeva i kliknite desnu tipku miša. Iz kontekstnog izbornika odaberite Svojstva(Svojstva) polje i u red Caption unesite novi naziv polja - Cijena s PDV-om1. Sada će u tablici s rezultatima upita ovo ime biti prikazano u zaglavlju izračunatog stupca. Naziv polja također se može ispraviti izravno u obrascu zahtjeva.
  5. Za prikaz rezultata upita kliknite na gumb Izvršiti(Trči) u grupi rezultate(Rezultati). Izračunato polje tablice i upit imaju iste vrijednosti.
  6. Promijenite cijenu proizvoda u jednom od zapisa zahtjeva. Vrijednosti u oba izračunata polja odmah će se ponovno izračunati.
  7. Za formiranje složenog izraza u izračunatom polju ili uvjetu odabira, preporučljivo je koristiti alat za sastavljanje izraza. Graditelj vam omogućuje odabir naziva polja potrebnih u izrazu iz tablica, upita, znakova operacija i funkcija. Uklonite izraz u izračunatom polju i generirajte ga alatom za izgradnju.
  8. Pozovite Expression Builder klikom na gumb Graditelj(Graditelj) u grupi Postavljanje upita(Postavljanje upita) dizajn vrpce ili odabirom Izgraditi(Izrada) u izborniku osjetljivom na kontekst. Kursor miša prvo se mora postaviti u ćeliju za unos izraza.
  9. Na lijevoj strani prozora Graditelj izraza(Expression Builder) (Sl. 4.7) odaberite tablicu PRODUCT na kojoj se temelji upit. Desno će se prikazati popis njegovih polja. Redom odaberite potrebna polja i operatore dvostrukim klikom na njih u izrazu. Izraz će se formirati na vrhu prozora. Imajte na umu da je graditelj prije naziva polja naveo naziv tablice kojoj pripada i odvojio ga od naziva polja uskličnikom.
  10. Dovršite postupak konstruiranja izraza u izračunatom polju klikom na OK.
  11. Spremite zahtjev pod nazivom ― Cijena s PDV-om i zatvorite ga.
  12. Izvršite spremljenu datoteku tako da je odaberete u navigacijskom području i odaberete Otvori iz kontekstnog izbornika.


Zadatak 2. Možete koristiti ugrađene funkcije u izračunatim poljima i uvjetima filtriranja. Access ima više od 150 definiranih funkcija.
Neka je potrebno odabrati sve fakture za koje je izvršena otprema u određenom mjesecu. U RAČUNU je datum otpreme pohranjen u polju DATE_OTG s tipom podataka Datum/vrijeme.

  1. Stvorite upit za odabir u načinu dizajna za tablicu RAČUN. Povucite polja NOM_NAKL i CODE_SK u obrazac (slika 4.8).
  2. Stvorite izračunato polje u praznoj ćeliji retka Polje(Polje) upisujući tamo jedan od izraza: Format([RAČUN]![DATUM_DISPOZICIJE];"mmmm") - ova funkcija će vratiti puni naziv mjeseca
    ili Format([INBOOK]![DISPOSITION_DATE];"mm") - ova funkcija će vratiti broj mjeseca.
  3. Da biste odabrali fakture izdane u određenom mjesecu, u izračunato polje u retku Uvjet odabira (Kriterij) unesite naziv mjeseca, na primjer ožujak (Sl. 4.8), ili broj mjeseca, na primjer 3 u skladu s parametar u funkciji Format.
  4. Završite svoj zahtjev klikom na gumb Izvršiti(Trči) u grupi rezultate(Rezultati) na kartici vrpce Rad sa zahtjevima | Konstruktor(Alati za upite | Dizajn).
  5. Upišite funkciju Month(INVOICE!DATE_OTG) u izračunato polje i provjerite vraća li ova funkcija broj mjeseca izdvojen iz datuma.
  6. Da biste odabrali sve retke koji se odnose na drugi kvartal, u retku Kriteriji unesite operator Between 4 And 6, koji određuje da li vrijednost izraza spada unutar navedenog intervala.
  7. Napišite izraz MonthName(Month(INVOICE!DATE_OTG)) u izračunato polje i provjerite pretvara li funkcija MonthName broj mjeseca u njegov puni naziv.


Kako biste to potvrdili, pogledajte video vodič.

Ovaj članak opisuje kako brojati podatke koje vraća upit. Na primjer, u obrascu ili izvješću možete prebrojati broj stavki u jednom ili više polja tablice ili kontrola. Također možete izračunati prosjeke, pronaći najviše i najniže vrijednosti te najstariji i najnoviji datum. Access također nudi alat koji se zove ukupni redak koji vam omogućuje zbrajanje podataka u tablici bez mijenjanja strukture vašeg upita.

Odaberite željenu radnju

Metode brojanja podataka

Pomoću funkcije možete prebrojati broj elemenata u polju (stupac vrijednosti). Broj. Funkcija Broj pripada nizu funkcija koje se nazivaju agregatne funkcije. Skupne funkcije izvode izračune na stupcima podataka i vraćaju jednu vrijednost. Osim funkcije Broj, Access ima sljedeće skupne funkcije:

    Iznos zbrajati stupce brojeva;

    Prosjek izračunati prosjek stupca brojeva;

    Maksimum pronaći najveću vrijednost u polju;

    Minimum pronaći najmanju vrijednost u polju;

    Standardna devijacija procijeniti širenje vrijednosti u odnosu na prosječnu vrijednost;

    Disperzija za izračunavanje statističke varijance svih vrijednosti u stupcu.

Access nudi dva načina za dodavanje funkcije Računati i druge agregatne funkcije u upit. Možeš:

    Otvorite upit u prikazu podatkovne tablice i dodajte ukupni redak. Redak zbroja omogućuje vam korištenje agregatnih funkcija na jednom ili više stupaca u rezultatima upita bez potrebe za mijenjanjem njegove strukture.

    Napravite konačni upit. Upit sažetka izračunava međuzbrojeve za grupe zapisa. Na primjer, ako želite izračunati međuzbroj svih prodaja po gradu ili po kvartalu, upotrijebili biste upit sažetka za grupiranje zapisa po kategoriji, a zatim zbrojili sve prodaje. S druge strane, možete upotrijebiti redak ukupnog iznosa za izračun ukupnog zbroja za jedan ili više stupaca (polja) podataka.

Bilješka: Sljedeći odjeljci ovog članka detaljno opisuju korištenje funkcije. Iznos, ali imajte na umu da možete koristiti druge agregatne funkcije u ukupnim redovima i upitima. Za više informacija o korištenju drugih agregatnih funkcija pogledajte odjeljak u nastavku.

Za više informacija o načinima korištenja drugih agregatnih funkcija, pogledajte.

Sljedeći odjeljci opisuju korake koje morate slijediti da biste dodali redak zbroja i opisuju kako koristiti upit za zbroj za brojanje podataka. Imajte na umu da funkcija Broj radi s više tipova podataka nego druge agregatne funkcije. Funkcija Broj može se koristiti za bilo koju vrstu polja osim za ona koja sadrže složene skalarne podatke koji se ponavljaju, kao što je polje popisa s više vrijednosti.

S druge strane, mnoge agregatne funkcije rade samo s podacima u poljima koja imaju određenu vrstu podataka. Na primjer, funkcija Iznos Radi samo s tipovima podataka Number, Real i Currency. Za više informacija o vrstama podataka potrebnih za svaku funkciju, pogledajte odjeljak u nastavku.

Za opće informacije o vrstama podataka pogledajte Promjena vrste podataka za polje.

Brojanje podataka korištenjem ukupnog retka

Da biste upitu dodali ukupni redak, otvorite ga u prikazu podatkovne tablice, dodajte redak, a zatim odaberite funkciju Broj ili neku drugu agregatnu funkciju, na primjer Iznos, Minimum, Maksimum ili Prosjek. Ovaj odjeljak objašnjava kako stvoriti jednostavan upit za odabir i dodati redak ukupnog broja.

Stvaranje jednostavnog upita za odabir

Dodavanje retka ukupnog broja

Sakrij ukupni redak

    Na kartici Dom u grupi Postovi kliknite gumb Rezultati.

Za više informacija o korištenju retka ukupnog iznosa pogledajte Prikaz ukupnih iznosa po stupcu u tablici.

Brojanje podataka korištenjem sumarnog upita

Kada trebate prebrojati neke ili sve zapise koje vraća upit, možete upotrijebiti ukupni upit umjesto ukupnog retka. Na primjer, možete prebrojati ukupan broj transakcija ili broj transakcija u određenom gradu.

Obično se upit sažetka koristi umjesto retka ukupnog iznosa kada želite upotrijebiti vrijednost rezultata u drugom dijelu baze podataka, kao što je izvješće.

Brojanje svih zapisa u upitu

Brojanje unosa u grupi ili kategoriji

Referenca agregatnih funkcija

Sljedeća tablica navodi i objašnjava funkcije zbrajanja programa Access koje možete koristiti u ukupnim redovima i upitima. Upamtite da Access ima više agregatnih funkcija za upite nego za ukupne retke. Osim toga, kada radite s projektom programa Access (vanjska baza podataka programa Access koja se povezuje s bazom podataka Microsoft SQL Server), možete koristiti poboljšani skup skupnih funkcija koje pruža SQL Server. Za više informacija o njima pogledajte Microsoft SQL Server Books Online.

Funkcija

Opis

Podržane vrste podataka

Iznos

Zbraja elemente u stupcu. Prikladno samo za numeričke i monetarne podatke.

Prosjek

Izračunava prosječnu vrijednost za stupac. Stupac mora sadržavati numeričke, novčane vrijednosti ili vrijednosti datuma ili vremena. Funkcija zanemaruje prazne vrijednosti.

Broj

Broji broj elemenata u stupcu.

Sve vrste podataka osim složenih ponavljajućih skalarnih podataka kao što je stupac popisa s više vrijednosti.

Za više informacija o popisima s više vrijednosti pogledajte Najbolje prakse za stvaranje i brisanje polja s više vrijednosti u vodičima za polja s više vrijednosti.

Maksimum

Vraća element s najvećom vrijednošću. Za tekstualne podatke, najveća vrijednost je zadnja vrijednost u abecedi, a Access ne razlikuje velika i mala slova. Funkcija zanemaruje prazne vrijednosti.

"Broj", "Stvarno", "Valuta", "Datum/vrijeme"

Minimum

Vraća element s najmanjom vrijednošću. Za tekstualne podatke, najmanja vrijednost je prva abecedna vrijednost, a Access ne razlikuje velika i mala slova. Funkcija zanemaruje prazne vrijednosti.

"Broj", "Stvarno", "Valuta", "Datum/vrijeme"

Standardna devijacija

Pokazuje koliko vrijednosti odstupaju od prosjeka.

Za više informacija o ovoj značajci pogledajte članak Prikaži ukupne vrijednosti za stupac u tablici.

"Broj", "Realno", "Valuta"

Disperzija

Izračunava statističku varijancu za sve vrijednosti u stupcu. Prikladno samo za numeričke i monetarne podatke. Ako tablica sadrži manje od dva retka, Access vraća praznu vrijednost.

Za više informacija o funkcijama za izračun varijance pogledajte Prikaz ukupnih vrijednosti stupaca u tablici.

"Broj", "Realno", "Valuta"

Primjer izračuna ukupnog iznosa u tablici baze podataka Microsoft Access bez korištenja SQL upita

Postoje slučajevi kada u tablici baze podataka trebate izračunati zbroj numeričkih vrijednosti određenog stupca. Za to postoje različite metode izračuna, od kojih se jedna temelji na pomoću odgovarajućeg SQL upita.

U ovom zadatku, korištenjem Microsoft Access tablice kao primjera, ukupni iznos se izračunava bez upotrebe SQL upita. Dodatno se izračunava aritmetička sredina vrijednosti ćelija navedenog stupca.

Pomoću ovog primjera možete izraditi bilo koji numerički izračun nad više zapisa određenog stupca.

Zadatak

Kao rezultat toga, ConnectionString se formira u komponenti ADOConnection1 (slika 2). Ovaj redak navodi vrstu davatelja podataka i punu stazu do datoteke baze podataka.

Riža. 2. ConnectionString komponente ADOConnection1

  1. Postavljanje komponente ADOConnection1, ADOTable1, DataSource1, DBGrid1.

Za prikaz tablice baze podataka morate konfigurirati sljedeća svojstva komponente:

– u komponenti ADOConnection1 svojstvo LoginPrompt = “false” (slika 3) (poništavanje zahtjeva za korisničkim imenom i lozinkom za pristup bazi);

– u komponenti ADOTable1 svojstvo Connection = “ADOConnection1” (slika 4);

– u komponenti DataSource1 svojstvo DataSet = “ADOTable1” (Sl. 5);

– u komponenti DBGrid1 svojstvo DataSource = “DataSource1” (slika 6);

– u ADOTable1 komponenti svojstvo TableName = “Worker” (slika 7);

– u komponenti DBGrid1 iz svojstva Options postaviti opciju dgEditing = false (zabrana unosa podataka u ćelije tablice izravno iz DBGrid1 grida) (Sl. 8).

Riža. 3. Svojstvo LoginPrompt komponente ADOConnection1

Riža. 4. Svojstvo veze komponente ADOTable1

Riža. 5. Svojstvo DataSet komponente DataSource1

Riža. 6. Svojstvo DataSource komponente DBGrid1

Riža. 7. Svojstvo TableName komponente ADOTable1

Riža. 8. Opcija dgEditing svojstva Options komponente DBGrid1

  1. Aktiviranje tablice.

Za prikaz podataka u tablici potrebno je izvršiti sljedeće korake (Sl. 9):

– odaberite tablicu ADOTable1;

– svojstvo Active = true.

Nakon toga će se podaci tablice prikazati u DBGrid1.

Riža. 9. Aktivno svojstvo komponente ADOTable1

  1. Postavljanje veličina i oblika komponenti.

Sljedeći korak je podešavanje veličina i položaja komponenti na obrascu, kao što je prikazano na slici 10.

Riža. 10. Glavni obrazac za prijavu

  1. Skrivanje polja ID_Worker u DBGrid1.

Kako bi prikazana tablica imala pravilan izgled potrebno je sakriti polje ID_Worker koje je ključno polje. U tablici ovo polje je brojač. Prilikom dodavanja novog zapisa, vrijednost u ovom polju se automatski generira (povećava se za 1).

Najprije trebate pozvati uređivač polja (“Fields Editor…”) komponente ADOTable1 iz kontekstnog izbornika (Slika 11).

Riža. 11. Pozivanje uređivača polja komponente ADOTable1

Otvorit će se prozor Form1.ADOTable1. U ovom prozoru, pomoću miša, morate pozvati kontekstni izbornik. U kontekstnom izborniku odaberite naredbu "Dodaj sva polja".

Kao rezultat toga, prozor uređivača izgledat će kao što je prikazano na slici 12.

Riža. 12. Urednik polja

Uređivač polja Form1.ADOTable1 prikazuje sva polja tablice Worker. Za brisanje polja ID_Worker potrebno je desnom tipkom miša kliknuti na liniju ID_Worker i u kontekstnom izborniku odabrati naredbu Izbriši. Nakon toga možete zatvoriti uređivač.

Kao rezultat toga, u tablici DBGrid1 bit će prikazana samo dva polja (slika 13).

Riža. 13. Prikaz radne tablice s dva polja

  1. Postavite izlazni filtar na dvije decimale u polju Plaća.

Kako bi vrijednost iznosa (2 decimalna mjesta) bila ispravno prikazana u polju Plaća potrebno je izvršiti sljedeće korake.

Odaberite komponentu ADOTable1. Pozovite uređivač polja “Fields Editor...” kao što je opisano u koraku 6. Kao rezultat toga, otvorit će se popis od dva polja Ime i Plaća. Odaberite redak pod nazivom Plaća. Objekt pod nazivom ADOTable1Salary bit će aktiviran u Object Inspectoru.

Sljedeći korak je postavljanje polja “Display Format” u Object Inspectoru na “0.00” (Sl. 14).

Riža. 14. Postavljanje izlaznog formata u polje Plaća objekta ADOTable1

Nakon odrađenih koraka polje Plaća u tablici bit će prikazano s točnošću od 2 decimalna mjesta.

  1. Unos internih varijabli.

Za spremanje podataka o zbroju i aritmetičkoj sredini potrebno je unijeti interne varijable pod nazivom sum i avg u tekst klase obrasca TForm1.

Varijable se unose u privatni odjeljak. Fragment koda za klasu obrasca TForm1 izgleda ovako:

... tip TForm1 = razreda(TForm) ADOConnection1: TADOConnection; DataSource1: TDataSource; ADOTable1: TADOTable; DBGrid1: TDBGrid; StatičkiTekst1: TStatičniTekst; StatičkiTekst2: TStatičniTekst; Statički tekst3: TStatični tekst; ADOTable1Name: TWideStringField; ADOTable1Plaća: TFloatField; postupak FormActivate(Pošiljatelj: TObject); postupak FormClose(Pošiljatelj: TObject; var Action: TCloseAction); privatna( Privatne deklaracije ) sum:real; // zbroj prosj.:stvarno; // prosjek javnost(Javne izjave) kraj; ...
  1. Programiranje događaja aktivacije forme.

Čim korisnik preuzme program, potrebno je odmah izračunati vrijednosti zbroja i aritmetičke sredine u tablicama.

Stoga morate programirati OnActivate događaj Form1. Događaj OnActivate bit će pozvan kada se obrazac aktivira nakon pokretanja programa za izvođenje.

Detaljno je opisan primjer programiranja događaja u Delphiju.

U našem slučaju rukovatelj događajima izgleda ovako:

postupak TForm1.FormActivate(Pošiljatelj: TObject); var f: TPolje; // dodatna varijabla tipa "Polje" početi // 1. Provjera ima li zapisa u tablici ako ADOTable1.RecordCount = 0 zatim Izlaz; // 2. Onemogući vizualizaciju u DBGrid1 ADOTable1.DisableControls; // 3. Iteracija po svim zapisima radne tablice // 3.1. Idi na prvi unos ADOTable1.First; // 3.2. Vrati iznos na nulu zbroj:= 0; // 3.3. Uzmite vrijednost plaće iz prvog zapisa f:= ADOTable1.FieldByName("Plaća"); // 3.4. Pregledavanje zapisa u tablici // - provjeriti je li dosegnut kraj tablice dok ADOTable1.Eof<>pravičini početi // 3.4.1. Povećajte iznos zbroj:= zbroj + f.Vrijednost; // 3.4.2. Idi na sljedeći unos ADOTable1.Dalje; kraj; // 4. Izračunajte aritmetičku sredinu avg:= zbroj / ADOTable1.RecordCount; // 5. Ispunite retke tipa TStaticText StaticText1.Caption:= "Zbroj: " + FloatToStr(sum, ffFixed, 8, 2); StaticText2.Caption:= "Prosječna plaća: " + FloatToStr(avg, ffFixed, 8, 2); // 6. Omogućite vizualizaciju u DBGridu ADOTable1.EnableControls; kraj;

Objasnimo neke fragmente koda.

Metode DisableControls i EnableControls odgovorne su za onemogućavanje i omogućavanje vizualnih kontrola povezanih sa skupom podataka (bazom podataka). Pozivanje metode DisableControls može značajno ubrzati proces iteracije kroz zapise, budući da će spriječiti aplikaciju da gubi vrijeme ponovno iscrtavajući sadržaj kontrole DBGrid1 sa svakom promjenom zapisa.

Vlasništvo

ADOTable1.RecordCount

označava broj zapisa u tablici.

ADOTable1.Prvo

postavlja prvi unos u tablicu aktivnim.

ADOTable1.FieldByName()

omogućuje vam da dobijete objekt tipa TField za dano polje. Zatim u ovom objektu možete dobiti informacije iz trenutnog zapisa. U programu se za pristup vrijednostima zapisa polja Plaća koristi dodatna varijabla f tipa TField. Za očitavanje vrijednosti u trenutnom zapisu polja Plaća dovoljno je nazvati operatera

f.Vrijednost

Vlasništvo

ADOTable1.Eof

postaje istina ako se dosegne kraj tablice.

ADOTable1.Dalje

implementira prijelaz na sljedeći zapis tablice.

Rezultat zbroja prikazuje se u svojstvu Caption komponente StaticText1.

Vrijednost aritmetičke sredine prikazuje se u svojstvu Caption komponente StaticText2.

  1. Pokretanje aplikacije na izvršenje.

Sada možete pokrenuti aplikaciju.