Hogyan állítsuk össze egy teljes oszlop összegét a hozzáférésben. Adatok számlálása lekérdezéssel. Hogyan működnek a Sum és egyéb összesített függvények

Ebben a cikkben a számított mezőkről fogunk beszélni Hozzáférés a lekérdezésekhez. A lekérdezések, akárcsak a táblázatok, számításokat végezhetnek az egyes rekordok numerikus, karakterlánc- vagy dátumértékei alapján egy vagy több mezőből származó adatok felhasználásával. A számítás eredménye egy új számított mezőt képez a lekérdezési táblában. A számított táblamezőkkel ellentétben a forrásadatbázis-táblázatok számított mezői nem hoznak létre új mezőket. A lekérdezés minden egyes végrehajtásakor a számítások az aktuális mezőértékek alapján készülnek.

A számított mezőkifejezések a mezőnevek mellett konstansokat és függvényeket is használhatnak. Egy kifejezés feldolgozása eredményeként csak egy értéket kaphatunk.

1. feladat. A TERMÉK táblában találhatók az ÁR és RATE_ÁFA mezők. Számítsa ki az ÁFA-t tartalmazó árat, és hasonlítsa össze az Ár áfával táblázat számított mezőjében kapott árral.

  1. Hozzon létre egy kiválasztási lekérdezést tervezési módban a TERMÉK táblához. Húzza a NAME_TOV, PRICE, RATE_VAT és Price with ÁFA mezőket az igénylőlapra (4.6. ábra).
  2. Az ÁFA-s ár kiszámításához hozzon létre egy számított mezőt a [ÁR]+[ÁR]*[RATE_ÁFA] kifejezés beírásával a Mező sor üres cellájába.
  3. Ha a számított mezőben 5000-nél nagyobb értékű rekordokat szeretne kiválasztani, írja be a > 5000 értéket a Feltételek sorba
  4. Kifejezés bevitele után a rendszer alapértelmezés szerint generálja a számított mező nevét Kifejezés 1, amely a lekérdezés eredményét tartalmazó táblázat oszlopfejlécévé válik. Ez a név a [PRICE]+[PRICE]*[VAT_RATE] kifejezés elé kerül beszúrásra. A lekérdezés minden új számított mezőjénél a kifejezés száma eggyel nő. A számított mezőnevet kettőspont választja el a kifejezéstől. A név megváltoztatásához vigye az egérmutatót az igénylőlap számított mezőjébe, és kattintson a jobb egérgombbal. A környezetérzékeny menüből válassza a lehetőséget Tulajdonságok(Tulajdonságok) mezőbe, és a Felirat sorba írjon be egy új mezőnevet - Ár áfával 1. Most a lekérdezés eredményeit tartalmazó táblázatban ez a név fog megjelenni a számított oszlop fejlécében. A mező neve közvetlenül az igénylőlapon is javítható.
  5. A lekérdezés eredményének megjelenítéséhez kattintson a gombra Végrehajtás(Fuss) a csoportban Eredmények(Eredmények). A tábla és a lekérdezés számított mezőjének értéke azonos.
  6. Módosítsa a termék árát az egyik kérelemrekordban. Mindkét számított mezőben lévő értékek azonnal újraszámításra kerülnek.
  7. Számított mezőben vagy kiválasztási feltételben komplex kifejezés létrehozásához célszerű a kifejezésépítőt használni. Az építő lehetővé teszi a kifejezésben szükséges mezőnevek kiválasztását táblákból, lekérdezésekből, műveleti jelekből és függvényekből. Távolítsa el a kifejezést a számított mezőből, és használja az építőt a létrehozásához.
  8. Hívja a Kifejezéskészítőt a gombra kattintva Építész(Építő) a csoportban Lekérdezés beállítása(Lekérdezés beállítása) szalag Tervezés, vagy kiválasztással Épít(Build) a környezetérzékeny menüben. Az egérkurzort előzőleg a kifejezés beviteli cellájában kell elhelyezni.
  9. Az ablak bal oldalán Kifejezéskészítő(Kifejezéskészítő) (4.7. ábra) válassza ki a TERMÉK táblát, amelyen a lekérdezés alapul. A jobb oldalon megjelenik a mezőinek listája. Következetesen válassza ki a szükséges mezőket és operátorokat, dupla kattintással kifejezésbe illesztve. A kifejezés az ablak tetején lesz kialakítva. Felhívjuk figyelmét, hogy a készítő a mezőnév előtt feltüntette annak a táblának a nevét, amelyhez tartozik, és felkiáltójellel választotta el a mező nevétől.
  10. Az OK gombra kattintva fejezze be a kifejezés létrehozásának folyamatát egy számított mezőben.
  11. Mentse el a kérést ― Ár áfával néven, és zárja be.
  12. Végezzen el egy mentett fájlt úgy, hogy kijelöli azt a navigációs panelen, és kiválasztja helyi menü Nyissa meg a parancsot.


2. feladat. A számított mezőkben és a kiválasztási feltételekben beépített függvényeket használhat. Az Access több mint 150 funkciót tartalmaz.
Legyen szükséges minden olyan számlát kiválasztani, amelyre adott hónapban kiszállítás történt. A SZÁMLÁBAN a szállítás dátuma a DATE_OTG mezőben kerül tárolásra a Dátum/Idő adattípussal.

  1. Hozzon létre egy kiválasztási lekérdezést tervezési módban a INVOICE táblához. Húzza a NOM_NAKL és CODE_SK mezőket az űrlapba (4.8. ábra).
  2. Hozzon létre egy számított mezőt egy üres sorcellában Mező(Mező) az egyik kifejezés beírásával: Formátum([SZÁMLA]![DISPOSITION_DATE];"mmmm") - ez a függvény a hónap teljes nevét adja vissza
    vagy Formátum([KÖNYV]![DATE_DATE];"mm") - ez a függvény a hónap számát adja vissza.
  3. Az adott hónapban kiállított számlák kiválasztásához a Kiválasztási feltétel (kritériumok) sorban a számított mezőbe írja be a hónap nevét, például március (4.8. ábra), vagy a hónap számát, például 3-at a paramétert a Formátum funkcióban.
  4. Töltse ki kérését a gombra kattintva Végrehajtás(Fuss) a csoportban Eredmények(Eredmények) a szalaglapon Munka kérésekkel | Konstruktőr(Lekérdező eszközök | Tervezés).
  5. Írja be a Hónap(SZÁMLA!DATE_OTG) függvényt a számított mezőbe, és győződjön meg arról, hogy ez a függvény a dátumból kivont hónapszámot adja vissza.
  6. A második negyedévhez kapcsolódó összes sor kijelöléséhez a Feltételek sorban adja meg a 4 és 6 között operátort, amely meghatározza, hogy a kifejezés értéke a megadott intervallumon belülre esik-e.
  7. Írja be a számított mezőbe a Hónapnév(Hónap(SZÁMLA!DATE_OTG)) kifejezést, és győződjön meg arról, hogy a Hónapnév függvény a hónap számát a teljes nevére konvertálja.


Ennek megerősítésére nézze meg az oktatóvideót.

Az Access Total sorában gyorsan megtekintheti a táblázat oszlopaiban lévő adatok összegzését. Például, ha felvesz egy Összesen sort egy vásárlásokat tartalmazó táblázathoz, megjelenítheti az összes értékesítést teljes számáruegységek vagy a vásárolt áruk száma.

Jegyzet: Egy oszlop értékeinek összegének megjelenítéséhez az oszlop adattípusát numerikus, töredékes vagy pénznemre kell állítani. Nem numerikus oszlopok esetén csak az Értékek száma összefoglaló típust választhatja ki.

"Összesen" sor hozzáadása

Összes típus kiválasztása

A sor hozzáadása után eredményeket kiválaszthatja az egyes oszlopokhoz megjelenített összeg típusát. Például aggregátumok, például összegek jeleníthetők meg, ha az adattípus szám, decimális vagy pénznem. Az értékek számlálása akkor lehetséges, ha az adattípus szöveges érték.

Tegyük meg, hogy a példa táblázata az oszlopokban lévő értékek összegét jelenítse meg VételárÉs Vásárolt cikkekés az oszlop végösszege Pozíció, ahogy az alábbi képen is látható.

Hogyan működnek a Sum és egyéb összesített függvények

Az összesítő függvények számításokat végeznek az adatoszlopokon, és egyetlen eredményt adnak vissza. Hasznosak lehetnek, ha egyetlen értéket, például összeget vagy átlagot kell kiszámítania. Emlékeztetni kell arra összesített függvények adatoszlopokra vonatkozik. Ez nyilvánvalónak tűnhet, de az adatbázisok tervezése és használata során általában az adatsorokra és az egyes rekordokra összpontosít, hogy a felhasználók adatokat vihessenek be egy mezőbe, mozgassa a kurzort jobbra vagy balra a következő mező kitöltéséhez stb. az összesítő függvényeket használja, az oszlopokban lévő rekordcsoportokra összpontosítva.

Tegyük fel, hogy az Access segítségével tárolja és követi az értékesítési adatokat. Az összesítő függvények segítségével kiszámíthatja az eladott cikkek számát egy oszlopban, a teljes értékesítést egy másodpercben, és az egyes cikkek átlagos eladásait egy harmadikban.

Az alábbi táblázat az Összes sorban elérhető összesített hozzáférési függvényeket írja le. Ne feledje, hogy vannak más összesítő függvények az Accessben, de ezeket használják a lekérdezésekben.

Funkció

Leírás

Támogatott adattípusok

Elérhető az "Összesen" sorban?

Kiszámítja egy oszlop átlagos értékét. Az oszlopnak numerikus, pénzbeli vagy dátum- vagy időértékeket kell tartalmaznia. A függvény figyelmen kívül hagyja az üres értékeket.

Értékek száma

Megszámolja az oszlopban lévő elemek számát.

Minden adattípus, kivéve az összetett ismétlődő skaláris adatokat, például egy többértékű listaoszlopot. A többértékű listákkal kapcsolatos további információkért tekintse meg a Többértékű mezők létrehozásának és törlésének bevált módszereit a Többértékű mezők oktatóanyagában.

Maximális érték

A legmagasabb értékű elemet adja vissza. Szöveges adatok esetén a legnagyobb érték az ábécé utolsó értéke, és az Access nem különbözteti meg a kis- és nagybetűket. A függvény figyelmen kívül hagyja az üres értékeket.

, "Dátum és idő"

Minimális érték

A legkisebb értékű elemet adja vissza. Szöveges adatok esetén a legkisebb érték az első alfabetikus érték, és az Access nem különbözteti meg a kis- és nagybetűket. A függvény figyelmen kívül hagyja az üres értékeket.

"Numerikus", "Valós", "Pénznem", "Dátum és idő"

Szórás

"Numerikus", "Valós", "Pénznem"

Összesíti az elemeket egy oszlopban. Csak numerikus és monetáris adatokra alkalmas.

"Szám", "Valós", "Pénznem"

Diszperzió

Kiszámítja a statisztikai szórást egy oszlopban lévő összes értékre. Csak numerikus és monetáris adatokra alkalmas. Ha a táblázat kettőnél kevesebb sort tartalmaz, az Access üres értéket ad vissza. A Variancia függvénnyel kapcsolatos további információkért lásd a következő részt.

"Numerikus", "Valós", "Pénznem"

Tudjon meg többet a szórás és szórás függvényekről

Funkciók SzórásÉs Diszperzió statisztikai értékeket számítanak ki. Különösen olyan értékekhez használják őket, amelyek az átlagértékük közelében helyezkednek el, és megfelelnek a normál eloszlás törvényének (a Gauss-görbén vannak).

Tegyük fel, hogy véletlenszerűen kiválasztott 10, ugyanazon a gépen készült szerszámot, és megmérte a törési szilárdságukat a gépellenőrzés és a minőségellenőrzés céljából. Ha kiszámítja az átlagos törési szilárdsági értéket, akkor látni fogja, hogy a legtöbb szerszámnál a törésszilárdság közel van az átlagos értékhez, de vannak nagyobb és alacsonyabb értékű szerszámok is. Ha azonban csak az átlagos törésszilárdsági értéket számítja ki, akkor ez az adat nem ad információt a minőség-ellenőrzés hatékonyságáról, mivel néhány szokatlanul erős vagy törékeny szerszám növelheti vagy csökkentheti az átlagértéket.

Funkciók változékonyságÉs szórások jelezze ezt a problémát, jelezve, hogy az értékek milyen közel állnak az átlaghoz. Kritikus erősség esetén az egyik függvény által visszaadott kisebb számok azt jelzik, hogy a termelési folyamatok normálisan működnek, mivel egyesek korlátozott mértékben, átlag feletti vagy alattiak.

Részletes leírás szórása és szórása túlmutat e cikk keretein. Mindkét funkcióról további információk találhatók a statisztikai weboldalakon. Funkciók használatakor DiszperzióÉs Szórás Ne feledje a következő szabályokat.

Bármely számokat tartalmazó Access-jelentésben használhat összegeket, átlagokat, százalékokat vagy összesített összegeket, hogy érthetőbbé tegye az adatokat. Ez a cikk elmagyarázza, hogyan adhatja hozzá ezeket az elemeket a jelentéshez.

Ebben a cikkben

A jelentésekhez hozzáadható aggregátumok típusai

A következő táblázat az Access összesítő függvényeinek típusait mutatja, amelyeket hozzáadhat a jelentéshez.

Számítás

Leírás

Funkció

Összesíti az elemeket egy oszlopban.

Meghatározza az oszlop összes elemének átlagát.

Megszámolja az oszlopban lévő elemek számát.

Maximális érték

Azt az elemet adja vissza, amelyiknek a legnagyobb (numerikus vagy alfabetikus) értéke van az oszlopban.

Minimális érték

Azt az elemet adja eredményül, amelynek a legkisebb (numerikus vagy alfabetikus) értéke van az oszlopban.

Szórás

Megmutatja, hogy egy oszlopban lévő értékek mennyivel térnek el az átlagtól.

Diszperzió

Kiszámítja egy oszlopban lévő összes érték eltérését.

Adjon hozzá egy összeget vagy más összesítést az elrendezési nézetben

Az elrendezés mód nyújtja a legtöbbet gyors útösszegek, átlagok és egyéb aggregátumok hozzáadása a jelentéshez.

Adat(Control Source) kifejezés, amely elvégzi a kívánt számítást. Ha a jelentésnek vannak csoportosítási szintjei, az Access egy szövegmezőt is hozzáad, amely ugyanazokat a számításokat végzi el az egyes csoportjegyzet-részekben.

A jelentésekben a csoportosítási szintek létrehozásával kapcsolatos további információkért lásd: Csoportosítási vagy összefoglaló jelentés létrehozása.

Összeg vagy más aggregátum hozzáadása tervezési módban

A konstruktor lehetővé teszi az elhelyezés pontosabb testreszabását és megjelenésösszértékek. A csoportosított jelentésekben összegeket és egyéb összesítéseket helyezhet el az egyes csoportok fejlécében vagy lábjegyzetében. A jelentésszintű összesítések elhelyezhetők a jelentés fejlécében vagy láblécében.

Az Access egy szövegmezőt ad a jelentés fejlécéhez, és beállítja a tulajdonság értékét Adat(Control Source) kifejezés, amely elvégzi a kívánt számítást. Ha a jelentésnek vannak csoportosítási szintjei, az Access egy szövegmezőt is hozzáad, amely ugyanazokat a számításokat végzi el az egyes csoportjegyzet-részekben. Ha ingatlanra Halmozott összeg(Running Sum) érték beállítása Mindenért, akkor a teljes összeg megismételhető a jelentés láblécében. Hozzon létre benne egy mezőt, és állítsa be a tulajdonság értékét: Adat(Control Source) például annak a mezőnek a neve, amelyben a kumulatív összeget kiszámítja =[Rendelési összeg].

Emberek! Segítsen egy egyszerű kérésben. Van egy táblázat: Table1 formátum: Megrendelés neve | Összeg | Az összes megrendelés teljes összege az első 10 rubel. második 20 dörzsölje a harmadik 30 dörzsölje meg, hogyan kell hozzáadni a sorokat az Összeg oszlopban. Az eredmény megjelenítéséhez „Összes rendelés összege” = 60 rubel És a táblázat idővel hozzáadódik... azaz. a 100. megbízás is megjelenik... ennek megfelelően a 100. megbízásnak is megvan a maga összege. Szükséges, hogy az „Összes rendelés összege” automatikusan újra legyen számolva. Köszönjük előre is a segítséget.

8 válasz

A megadott adatok alapján ez lehetetlen. Hogyan történik a sorok rendezése a táblázatban?
Ezt Excelben könnyű megtenni. Például az =SUM(A1:A100) parancs – azaz. a táblázatban 100 cellára kapjuk az összegeket. Miért nem tudjuk ezt megtenni az adatbázisban minden rendelésnévhez (szöveghez) tartozik egy megfelelő szám (szám). Valójában ezek a számok (sorszámok) rendben vannak. Azok. példa:1 | táska | 100 dörzsölje. |2 | gumiabroncs | 50 dörzsölje. |...100 | könyv | 60 dörzsölje. |...Hogyan tudom kiszámolni az összes rendelés végösszegét (1...100...)?

mivang,Az Excelben a rekordok fizikai sorrendje van egy táblázatban. Ami meghatározza, hogy mi magasabb és mi alacsonyabb. A relációs adatbázisokban ez a sorrend NEM LÉTEZIK. A sorrendet a kérésben megadott rendezés határozza meg, ennek hiányában BÁRMILYEN rendezés lehet. Ha azt szeretné, hogy a kérdés értelmes legyen, egyértelműen tüntesse fel azt a kritériumot, amely alapján megállapíthatja a bejegyzések sorrendjét. A fenti példában ez például a sorszám. A bemutatott táblázat szerkezetében azonban nincs ilyen mező.

Ha azt szeretné, hogy a kérdés értelmes legyen, egyértelműen tüntesse fel azt a kritériumot, amely alapján megállapíthatja a bejegyzések sorrendjét. A fenti példában ez például a sorszám. A bemutatott táblázat szerkezetében azonban nincs ilyen mező.
A táblázat tartalmazza a rendelésszám mezőt. Azok. az általános nézet valami ilyesmi: | Megrendelés neve | Megrendelés összege |1 | táska | 10rur |2 | kruska | 20rur |3 | banka | 30rur |... | ... |***|Van most kötés? Vagy megint nem értettem valamit... :(Hogyan találom meg az összes rendelés végösszegét?
Most van link?
Igen. SELECT Table1.[Rendelési szám], Table1.[Rendelés neve], Table1.[Rendelés összege], Sum(q1.[Rendelés összege]) AS [Összes rendelés összege] FROM (SELECT t1.[Rendelési szám] , t1. [Megrendelés neve], t1.[Rendelési összeg], t2.[Rendelési szám] FROM Table1 AS t1, Table1 AS t2 WHERE (((t1.[Rendelési szám])>=.[Rendelési szám] ))) AS q1 INNER JOIN Table1 ON q1.t1.[Rendelési szám] = Table1.[Rendelési szám]CSOPORTOSÍTÁS TÁBLÁZAT SZERINTI 1.[Rendelési szám], Table1.[Rendelés neve], Table1.[Rendelés összege];
SELECT Table1.[Rendelési szám], Table1.[Rendelés neve], Table1.[Rendelés összege], Sum(q1.[Rendelés összege]) AS [Összes rendelés összege] FROM [ SELECT t1.[Rendelési szám] , t1. [Megrendelés neve], t1.[Rendelési összeg], t2.[Rendelési szám] FROM Table1 AS t1, Table1 AS t2 WHERE (((t1.[Rendelési szám])>=.[Rendelési szám] ))]. AS q1 INNER JOIN Table1 ON q1.t1.[Rendelési szám] = Table1.[Rendelési szám]CSOPORTOSÍTÁS TÁBLÁZAT SZERINTI 1.[Rendelési szám], Table1.[Rendelés neve], Table1.[Rendelés összege];
Hibaüzenet jelenik meg: A "SELECT t1.[Rendelési szám" nevű zárójelek használata érvénytelen.:((Mi a probléma? 3 perc és 33 másodperc után hozzáadva Emberek! Készen áll a BDK küldésére. Ha igen. WM-ben fizetek. NAGYON SÜRGŐS (1 órán belül)

Tegyük fel, hogy a következő táblázatunk van: táblázat: tblOrdersmező típusa idOrders CounterfldName TextfldSumma MonetaryAkkor a lekérdezés valami ilyesmi lesz: SELECT Sum(tblOrders.fldSumma) AS FROM tblOrders; Sum-fldSumma ez egy kifejezési álnév Összeg(tblOrders.fldSumma). Ennek eredményeként egy cellát tartalmazó táblázatot kapunk. Az egyértelműség kedvéért írtam egy kódpéldát a VS 2005-ben, kivétel nélkül, hogy érthetőbb legyen, először létre kell hozni egy projektet, és hozzá kell adni egy gombot GetSumButtonés szövegmező SumTextBox, azaz változtassa meg a nevüket. Cserélje ki az űrlap nevét erre: MainFormés cserélje ki a kódját az alsóra.

Opció Szigorú Beállítás Explicit OnImports System.Data.OleDbPublic Class MainForm """ Szerezzen összeget Privát függvény GetSumma() As Decimal A cn használata új OleDbConnection(My.Settings.dbConnectionString) cn.Open() Dim cmd As OleDbCommand = cn.CreateCommand() cmd.CommandText = "SELECT Sum(tbltma)Orflder; " A CDec(cmd.ExecuteScalar()) visszaadása End a """ befejező függvény használatával Feldolgozás Kattintson az eseményekre GetSumButtons Private Sub GetSumButton_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Kezeli a GetSumButton.Click " Az összeget jeleníti meg az aktuális pénznemben Me.SumTextBox.Text = FormatCurrency(GetSumma()) AlEnd osztály vége a példához , akkor a Saját projektben kell lennie. >>Beállítások adjon hozzá egy sort a névvel dbConnectionString következő tartalmat Szolgáltató=Microsoft.Jet.OLEDB.4.0;Adatforrás=|DataDirectory|\orders.mdb . Csatlakoztasson egy MS Access adatbázist a projekthez, vagy egyszerűen másolja be a könyvtárba futtatható fájl