Kako napraviti zbir cijele kolone u pristupu. Brojanje podataka pomoću upita. Kako funkcioniraju zbroj i druge agregatne funkcije

U ovom članku ćemo govoriti o izračunatim poljima u Pristup upitima. Upit, poput tabele, može izvršiti kalkulacije za numeričke, nizove ili datumske vrijednosti za svaki zapis koristeći podatke iz jednog ili više polja. Rezultat izračuna formira novo izračunato polje u tabeli upita. Za razliku od izračunatih polja tabele, izračunata polja u tabelama izvorne baze podataka ne kreiraju nova polja. Svaki put kada se upit izvrši, proračuni se rade na osnovu trenutnih vrijednosti polja.

Izračunati izrazi polja mogu koristiti konstante i funkcije pored naziva polja. Kao rezultat obrade izraza, može se dobiti samo jedna vrijednost.

Zadatak 1. Tabela PROIZVOD ima polja PRICE i RATE_PDV. Izračunajte cijenu sa PDV-om i uporedite je sa cijenom dobijenom u obračunskom polju tablice Cijena sa PDV-om.

  1. Kreirajte upit za odabir u načinu dizajna za tablicu PRODUCT. Povucite polja NAZIV_TOV, CIJENA, STOPA_PDV i Cijena sa PDV-om u obrazac zahtjeva (slika 4.6).
  2. Da biste izračunali cijenu s PDV-om, kreirajte izračunato polje tako što ćete napisati izraz [CIJENA]+[CIJENA]*[STOP_PDV] u praznu ćeliju reda Polje.
  3. Da biste odabrali zapise s vrijednošću većom od 5000 u polju za izračunavanje, unesite > 5000 u red Kriterij
  4. Nakon unosa izraza, sistem podrazumevano generiše ime izračunatog polja Izraz 1, koje postaje naslov kolone u tabeli sa rezultatima upita. Ovo ime će biti umetnuto ispred izraza [PRICE]+[PRICE]*[PDV_STOP]. Za svako novo izračunato polje u upitu, broj izraza se povećava za jedan. Ime izračunatog polja je odvojeno od izraza dvotočkom. Da biste promijenili naziv, postavite kursor miša u izračunato polje obrasca zahtjeva i kliknite desnim gumbom miša. Iz kontekstnog izbornika odaberite Svojstva(Svojstva) i u red za natpis unesite novo ime polja - Cijena sa PDV-om1. Sada u tabeli sa rezultatima upita, ovo ime će biti prikazano u zaglavlju izračunate kolone. Naziv polja se također može ispraviti direktno u obrascu zahtjeva.
  5. Za prikaz rezultata upita kliknite na dugme Izvrši(Trči) u grupi Rezultati(Rezultati). Izračunato polje tabele i upit imaju iste vrijednosti.
  6. Promijenite cijenu proizvoda u jednom od zapisa zahtjeva. Vrijednosti u oba izračunata polja će se odmah ponovo izračunati.
  7. Za formiranje složenog izraza u izračunatom polju ili uslovu odabira, preporučljivo je koristiti alat za izgradnju izraza. Graditelj vam omogućava da odaberete imena polja koja su potrebna u izrazu iz tabela, upita, znakova operacija i funkcija. Uklonite izraz iz izračunatog polja i upotrijebite ga za generiranje.
  8. Pozovite Expression Builder klikom na dugme Builder(Graditelj) u grupi Postavljanje upita(Podešavanje upita) dizajn trake ili odabirom Build(Build) u kontekstualnom meniju. Kursor miša se prvo mora postaviti u ćeliju za unos izraza.
  9. Na lijevoj strani prozora Expression Builder(Izrađivanje izraza) (Slika 4.7) odaberite tabelu PRODUCT na kojoj se temelji upit. Sa desne strane će se prikazati lista njegovih polja. Dosljedno birajte potrebna polja i operatore, dvaput kliknite ubacivanje u izraz. Izraz će se formirati na vrhu prozora. Imajte na umu da je graditelj naveo naziv tabele kojoj pripada prije naziva polja i odvojio ga od naziva polja uzvikom.
  10. Dovršite proces konstruisanja izraza u izračunatom polju klikom na dugme U redu.
  11. Sačuvajte zahtjev pod nazivom ― Cijena sa PDV-om i zatvorite ga.
  12. Izvršite sačuvani tako što ćete ga označiti u oknu za navigaciju i odabrati kontekstni meni Otvori naredbu.


Zadatak 2. Možete koristiti ugrađene funkcije u izračunatim poljima i uvjetima filtriranja. Access ima preko 150 definiranih funkcija.
Neka je potrebno odabrati sve fakture za koje je isporučena pošiljka u datom mjesecu. U FAKTURI, datum otpreme se pohranjuje u polje DATE_OTG sa tipom podataka Datum/Vrijeme.

  1. Kreirajte upit za odabir u načinu dizajna za tablicu INVOICE. Povucite polja NOM_NAKL i CODE_SK u obrazac (slika 4.8).
  2. Kreirajte izračunato polje u praznoj ćeliji reda Polje(Polje) upisivanjem jednog od izraza tamo: Format([RAČUN]![DISPOSITION_DATE];"mmmm") - ova funkcija će vratiti puni naziv mjeseca
    ili Format([INBOOK]![DISPOSITION_DATE];"mm") - ova funkcija će vratiti broj mjeseca.
  3. Da biste odabrali račune izdate u datom mjesecu, u polje za izračunavanje u redu Uslov odabira (Kriterijumi) unesite naziv mjeseca, na primjer mart (slika 4.8), ili broj mjeseca, na primjer 3 u skladu sa parametar u funkciji Format.
  4. Dovršite svoj zahtjev klikom na dugme Izvrši(Trči) u grupi Rezultati(Rezultati) na kartici trake Rad sa zahtjevima | Constructor(Alati za upite | Dizajn).
  5. Napišite funkciju Mjesec(INVOICE!DATE_OTG) u izračunato polje i uvjerite se da ova funkcija vraća broj mjeseca izvučen iz datuma.
  6. Da biste odabrali sve redove koji se odnose na drugu četvrtinu, u red Kriterij unesite operator Između 4 I 6, koji određuje da li vrijednost izraza spada u navedeni interval.
  7. Napišite izraz MonthName(Month(INVOICE!DATE_OTG)) u izračunato polje i uvjerite se da funkcija MonthName konvertuje broj mjeseca u njegov puni naziv.


Da biste to potvrdili, pogledajte video tutorijal.

Red Total u programu Access vam omogućava da brzo pregledate sažetak podataka u kolonama tabele. Na primjer, ako dodate red Ukupno u tabelu koja sadrži kupovine, možete prikazati ukupnu prodaju ukupan broj jedinice robe ili broj kupljene robe.

Napomena: Da biste prikazali zbir vrijednosti kolone, morate postaviti tip podataka kolone na Numerički, Razlomak ili Valuta. Za nenumeričke stupce, možete odabrati samo tip sažetka Count of Values.

Dodavanje linije "Ukupno".

Odabir ukupne vrste

Nakon dodavanja linije rezultate birate tip ukupnog iznosa koji se prikazuje za svaku kolonu. Na primjer, agregati kao što su sume mogu se prikazati kada je tip podataka broj, decimalni ili valuta. Brojanje vrijednosti je moguće ako je tip podataka tekstualna vrijednost.

Napravimo tablicu u ovom primjeru da prikazuje zbir vrijednosti u stupcima Kupovna cijena I Kupljeni artikli i ukupno za kolonu Pozicija, kao što je prikazano na slici ispod.

Kako funkcioniraju zbroj i druge agregatne funkcije

Agregatne funkcije izvode kalkulacije na stupcima podataka i vraćaju jedan rezultat. Oni mogu biti korisni ako trebate izračunati jednu vrijednost, kao što je zbir ili prosjek. Treba to zapamtiti agregatne funkcije primijeniti na stupce podataka. Ovo može izgledati očigledno, ali kada dizajnirate i koristite baze podataka, obično se fokusirate na redove podataka i pojedinačne zapise kako bi korisnici mogli unijeti podatke u polje, pomjeriti kursor udesno ili ulijevo da popune sljedeće polje, itd. Obrnuto, vi koristite funkcije agregata, fokusirajući se na grupe zapisa u kolonama.

Recimo da koristite Access za pohranjivanje i praćenje podataka o prodaji. Koristeći agregatne funkcije, možete izračunati broj prodatih artikala u jednoj koloni, ukupnu prodaju u drugoj i prosječnu prodaju za svaku stavku u trećoj.

Donja tabela opisuje Access agregatne funkcije koje su dostupne u redu Ukupno. Zapamtite da u Accessu postoje i druge agregatne funkcije, ali se one koriste u upitima.

Funkcija

Opis

Podržani tipovi podataka

Dostupno u redu "Ukupno"?

Izračunava prosječnu vrijednost za kolonu. Kolona mora sadržavati numeričke, novčane ili datumske ili vremenske vrijednosti. Funkcija zanemaruje prazne vrijednosti.

Broj vrijednosti

Broji broj elemenata u koloni.

Svi tipovi podataka osim složenih ponavljajućih skalarnih podataka kao što je kolona liste sa više vrijednosti. Za više informacija o listama s više vrijednosti, pogledajte Najbolje prakse za kreiranje i brisanje polja s više vrijednosti u uputama o viševrijednim poljima.

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"

Zbira elemente u koloni. Pogodno samo za numeričke i monetarne podatke.

"Broj", "Realno", "Valuta"

Disperzija

Izračunava statističku varijansu za sve vrijednosti u koloni. Pogodno samo za numeričke i monetarne podatke. Ako tabela sadrži manje od dva reda, Access vraća praznu vrijednost. Za više informacija o funkciji Variance, pogledajte sljedeći odjeljak.

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

Saznajte više o funkcijama standardne devijacije i varijanse

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 napravljenih na istoj mašini i izmjerili njihovu snagu loma za pregled stroja i kontrolu kvaliteta. Ako izračunate prosječnu snagu loma, vidjet ćete da većina alata ima čvrstoću loma blizu prosjeka, ali postoje i alati sa 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 djelotvornosti kontrole kvalitete, budući da nekoliko neobično jakih ili lomljivih alata može povećati ili smanjiti prosječnu vrijednost.

Funkcije varijabilnost I standardne devijacije označite ovaj problem navodeći 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, jer su neki ograničenog opsega, iznad ili ispod prosjeka.

Detaljan opis varijansa i standardna devijacija su izvan okvira ovog članka. Više informacija o obje funkcije možete pronaći na web stranicama statistike. Kada koristite funkcije Disperzija I Standardna devijacija Zapamtite sljedeća pravila.

U bilo kojem izvještaju programa Access koji sadrži brojeve, možete koristiti ukupne vrijednosti, prosjeke, procente ili kumulativne zbrojeve kako biste podatke učinili razumljivijima. Ovaj članak objašnjava kako dodati ove elemente svom izvještaju.

U ovom članku

Vrste agregata koji se mogu dodati izvještaju

Sljedeća tabela prikazuje tipove agregatnih funkcija u Accessu koje možete dodati svom izvještaju.

Kalkulacija

Opis

Funkcija

Zbira elemente u koloni.

Određuje prosjek svih elemenata u koloni.

Broji broj elemenata u koloni.

Maksimalna vrijednost

Vraća element koji ima najveću (numeričku ili alfabetsku) vrijednost u stupcu.

Minimalna vrijednost

Vraća element koji ima najmanju (numeričku ili alfabetsku) vrijednost u stupcu.

Standardna devijacija

Pokazuje koliko vrijednosti u koloni odstupaju od prosjeka.

Disperzija

Izračunava varijansu za sve vrijednosti u koloni.

Dodajte zbroj ili drugi agregat u prikazu izgleda

Layout način pruža najviše brz način dodavanje iznosa, prosjeka i drugih agregata u izvještaj.

Podaci(Control Source) izraz koji izvodi željeni proračun. Ako vaš izveštaj ima nivoe grupisanja, Access će takođe dodati okvir za tekst koji obavlja iste proračune u svakom odeljku grupne beleške.

Za više informacija o kreiranju nivoa grupisanja u izvještajima, pogledajte Kreiranje izvještaja o grupisanju ili sažetku.

Dodavanje zbroja ili drugog agregata u dizajnu

Konstruktor vam omogućava da preciznije prilagodite položaj i izgled ukupne vrijednosti. U grupisanim izvještajima možete staviti ukupne vrijednosti i druge agregate u zaglavlje ili fusnotu svake grupe. Agregati na nivou izvještaja mogu se postaviti u zaglavlje ili podnožje izvještaja.

Access dodaje okvir za tekst u zaglavlje izvještaja i postavlja vrijednost njegovog svojstva Podaci(Control Source) izraz koji izvodi željeni proračun. Ako vaš izveštaj ima nivoe grupisanja, Access će takođe dodati okvir za tekst koji obavlja iste proračune u svakom odeljku grupne beleške. Ako za imovinu Kumulativni iznos(Pokrenuta suma) vrijednost postavljena Za sve, onda se ukupni zbroj može ponoviti u podnožju izvještaja. Kreirajte polje u njemu i postavite njegovu vrijednost svojstva kao Podaci(Control Source) naziv polja u kojem se, na primjer, izračunava kumulativna suma =[Iznos narudžbe].

Ljudi! Pomozite mi da napravim jednostavan zahtjev Postoji tabela: Format tabele 1: Naziv narudžbe | Iznos | Ukupan iznos svih porudžbina je prvih 10 rubalja. drugi 20 rub treći 30 rub. Reci mi kako da dodam redove u kolonu. Za prikaz rezultata "Ukupan iznos svih narudžbi" = 60 rubalja I tabela će se vremenom dodati... pojaviće se i 100. nalog... shodno tome, 100. nalog će imati svoj iznos. Neophodno je da se "Ukupan iznos svih narudžbi" automatski preračuna. Hvala unapred na pomoći.

8 odgovora

Na osnovu dostavljenih podataka, to je nemoguće kako se određuje sortiranje redova u tabeli?
Ovo je lako uraditi u Excel-u. Na primjer, naredba =SUM(A1:A100) - tj. dobijamo zbrojeve za 100 ćelija u tabeli. Zašto to ne možemo da uradimo u bazi podataka (tekst)? Zapravo, ovi brojevi (brojevi naloga) su u redu. One. primjer:1 | torba | 100 rub. |2 | guma | 50 rub. |...100 | knjiga | 60 rub. |...Kako mogu izračunati ukupan iznos svih naloga (1...100...)?

mivang,U Excel-u postoji fizički redosled zapisa u tabeli. Što određuje šta je više, a šta niže. U relacionim bazama podataka ovaj red NE POSTOJI. Redoslijed je određen sortiranjem navedenim u zahtjevu, a u nedostatku može biti BILO KOJE sortiranje. Ako želite da pitanje ima smisla, jasno navedite kriterijum na osnovu kojeg možete utvrditi redosled unosa. U gornjem primjeru, ovo je, na primjer, broj reda. Međutim, ne postoji takvo polje u strukturi prikazane tabele.

Ako želite da pitanje ima smisla, jasno navedite kriterijum na osnovu kojeg možete utvrditi redosled unosa. U gornjem primjeru, ovo je, na primjer, broj reda. Međutim, ne postoji takvo polje u strukturi prikazane tabele.
Tabela sadrži polje za broj naloga. One. opšti pogled je otprilike ovaj: narudžba br Naziv narudžbe | Iznos narudžbe |1 | torba | 10rur |2 | krushka | 20rur |3 | banka | 30rur |... | ... |***|Ima li sad veze? Ili opet nešto nisam razumio... :(Kako pronaći ukupan iznos svih narudžbi?
Ima li sada link?
Da. ODABIR Tabela1.[Br. narudžbe], Tabela1.[Naziv narudžbe], Tabela1.[Iznos narudžbe], Suma(q1.[Iznos narudžbe]) KAO [Ukupni iznos svih naloga]OD (IZABIR t1.[Br. , t1. [Naziv narudžbe], t1.[Iznos narudžbe], t2.[Broj narudžbe] IZ Tablice1 KAO t1, Tabela1 KAO t2 GDJE (((t1.[Br. narudžbe])>=.[Br. ))) AS q1 INNER JOIN Tabela1 NA q1.t1.[Br. narudžbe] = Tabela1.[Br. narudžbe]GRUPA PO Tabeli1.[Br. narudžbe], Tabela1.[Naziv narudžbe], Tabela1.[Iznos narudžbe];
ODABIR Tabela1.[Br. narudžbe], Tabela1.[Naziv narudžbe], Tabela1.[Iznos narudžbe], Suma(q1.[Iznos narudžbe]) KAO [Ukupni iznos svih naloga]OD [ SELECT t1.[Br. , t1. [Naziv narudžbe], t1.[Iznos narudžbe], t2.[Broj narudžbe] IZ Tablice1 KAO t1, Tabela1 KAO t2 GDJE (((t1.[Br. narudžbe])>=.[Br. ))]. AS q1 INNER JOIN Tabela1 NA q1.t1.[Br. narudžbe] = Tabela1.[Br. narudžbe]GRUPA PO Tabeli1.[Br. narudžbe], Tabela1.[Naziv narudžbe], Tabela1.[Iznos narudžbe];
Prikazuje se greška: Nevažeća upotreba zagrada sa imenom "SELECT t1.[Br.:((U čemu je problem? Dodato nakon 3 minute i 33 sekunde Ljudi! Spreman za slanje BDK. Ako to uradiš. Plaćam u WM. VRLO HITNO (u roku od 1 sata)

Pretpostavimo da imamo sledeću tabelu: tabela: tblOrderstip polja idOrders CounterfldName TextfldSumma MonetaryOnda će upit biti otprilike ovako: SELECT Sum(tblOrders.fldSumma) AS FROM tblOrders; Sum-fldSumma ovo je izraz alias zbroj(tblOrders.fldSumma). Kao rezultat, dobijamo tabelu sa jednom ćelijom. Za pojašnjenje, napisao sam primjer koda u VS 2005, bez rukovanja izuzetkom, da bi bilo jasnije Prvo morate kreirati projekat i dodati dugme GetSumButton i tekstualno polje SumTextBox, odnosno promijeniti njihova imena. Zamijenite naziv obrasca sa MainForm i zamijeniti njegov kod s nižim.

Opcija Strict OnOption Eksplicitno OnImports System.Data.OleDbPublic Class MainForm """ Uzmite iznos Privatna funkcija GetSumma() kao decimalni koristeći cn kao novi OleDbConnection(My.Settings.dbConnectionString) cn.Open() Dim cmd kao OleDbCommand = cn.CreateCommand() cmd.CommandText = "SELECT Sum(tblOrders.fldSumma) AS FROMtO " Vrati CDec(cmd.ExecuteScalar()) Kraj korištenjem funkcije End """ Obrada Kliknite na događaje GetSumButtons Privatni Sub GetSumButton_Click(ByVal pošiljalac Kao System.Object, ByVal e As System.EventArgs) Rukuje GetSumButton.Click " Prikaži iznos u trenutnoj valuti Me.SumTextBox.Text = FormatCurrency(GetSumma()) Završi radnu klasu za podEnd Za primjer , morate biti u Moj projekt >>Postavke dodati red sa imenom dbConnectionString sledeći sadržaji Provider=Microsoft.Jet.OLEDB.4.0; Izvor podataka=|DataDirectory|\orders.mdb . Priložite MS Access bazu podataka projektu ili je jednostavno kopirajte u direktorij sa izvršnu datoteku