Jak vytvořit dotaz průběžných součtů v Microsoft Accessu
Pokročilé: Vyžaduje odborné kódování, interoperabilitu a víceuživatelské dovednosti.
Tento článek se týká souboru databáze Microsoft Access (MDB) nebo souboru databáze Microsoft Access (.accdb).
Souhrn
Tento článek popisuje dvě metody, které můžete použít k vytvoření dotazu průběžných součtů. Dotaz průběžných součtů je dotaz, ve kterém součet každého záznamu představuje součet tohoto záznamu a všech předchozích záznamů. Tento typ dotazu je užitečný pro zobrazení kumulativních součtů za skupinu záznamů (nebo za určité časové období) v grafu nebo sestavě.
Poznámka Ukázku techniky použité v tomto článku najdete v ukázkovém souboru Qrysmp00.exe.
Další informace
Metoda 1
První metoda používá funkci DSum a kritéria v dotazu k vytvoření průběžného součtu v průběhu času. Funkce DSum sečte aktuální záznam a všechny předchozí záznamy. Když se dotaz přesune na další záznam, funkce DSum se znovu spustí a aktualizuje kumulativní součet.
Následující ukázkový dotaz používá tabulku Orders z ukázkové databáze Northwind k vytvoření průběžného součtu nákladů na dopravu za každý měsíc v roce 1997. Ukázková data jsou z důvodů výkonu omezená na jeden rok. Vzhledem k tomu, že funkce DSum běží jednou pro každý záznam v dotazu, může dokončení zpracování dotazu trvat několik sekund (v závislosti na rychlosti počítače). Chcete-li vytvořit a spustit tento dotaz, postupujte takto:
Otevřete ukázkovou databázi Northwind.
Vytvořte nový výběrový dotaz a přidejte tabulku Objednávky .
V nabídce View (Zobrazení) klikněte na Totals (Součty).
Poznámka V Accessu 2007 klikněte na Souhrny ve skupině Zobrazit nebo skrýt na kartě Návrh .
Do prvního sloupce návrhové mřížky dotazu zadejte do pole Pole následující výraz a pro pole Součet, Řazení a Zobrazit vyberte následující možnosti:
Field: AYear: DatePart("yyyy",[OrderDate]) Total: Group By Sort: Ascending Show: Yes
Výraz v poli Pole zobrazí a seřadí část roku pole Datumobjednávky.
Do druhého sloupce návrhové mřížky dotazu zadejte do pole Pole následující výraz a pro pole Součet, Řazení a Zobrazit proveďte následující výběry:
Field: AMonth: DatePart("m",[OrderDate]) Total: Group By Sort: Ascending Show: Yes
Výraz v poli Pole seřadí a zobrazí část měsíce pole Datum objednávky jako celočíselnou hodnotu od 1 do 12.
Do třetího sloupce návrhové mřížky dotazu zadejte do pole Pole následující výraz a pro pole Součet a Zobrazit proveďte následující výběry.
POZNÁMKA V následujícím příkladu se jako znak pokračování řádku používá podtržítko (_) na konci řádku. Při opětovném vytvoření tohoto příkladu odeberte podtržítko z konce řádku.
Field: RunTot: DSum("Freight","Orders","DatePart('m', _ [OrderDate])<=" & [AMonth] & " And DatePart('yyyy', _ [OrderDate])<=" & [AYear] & "") Total: Expression Show: Yes
Výraz v poli Pole používá funkci DSum() k sečtení pole Dopravné, pokud jsou hodnoty v polích AMonth i AYear menší nebo rovné aktuálnímu záznamu, který dotaz zpracovává.
Ve čtvrtém sloupci návrhové mřížky dotazu zadejte do pole Pole následující výraz a pro pole Součet, Řazení a Zobrazit proveďte následující výběry:
Field: FDate: Format([OrderDate],"mmm") Total: Group By Sort: Ascending Show: Yes
Výraz v poli Pole se každý měsíc zobrazuje v textovém formátu, například jan, únor, březen atd.
Do pátého sloupce návrhové mřížky dotazu zadejte do pole Pole následující výraz a pro pole Součet, Kritéria a Zobrazit proveďte následující výběry:
Field: DatePart("yyyy",[OrderDate]) Total: Where Criteria: 1997 Show: No
Výraz v poli Pole filtruje sadu záznamů dotazu tak, aby zahrnovala pouze data z roku 1997.
Spusťte dotaz. Všimněte si, že pole RunTot zobrazuje následující záznamy se průběžným součtem:
AYear AMonth RunTot FDate -------------------------------------- 1997 1 2238.98 Jan 1997 2 3840.43 Feb 1997 3 5729.24 Mar 1997 4 8668.34 Apr 1997 5 12129.74 May 1997 6 13982.39 Jun 1997 7 17729.29 Jul 1997 8 22204.73 Aug 1997 9 26565.26 Sep 1997 10 32031.38 Oct 1997 11 36192.09 Nov 1997 12 42748.64 Dec
Metoda 2
Druhá metoda používá dotaz součtů s funkcí DSum() k vytvoření průběžného součtu pro skupinu.
Následující ukázkový dotaz používá tabulku Objednávky k sečtení přepravních nákladů na zaměstnance a také k výpočtu průběžného součtu přepravy. Pokud chcete vytvořit a spustit dotaz, postupujte takto:
Otevřete Northwind.mdb ukázkové databáze.
Vytvořte nový výběrový dotaz a přidejte tabulku Objednávky.
V nabídce View (Zobrazení) klikněte na Totals (Součty).
Poznámka V Accessu 2007 klikněte na Souhrny ve skupině Zobrazit nebo skrýt na kartě Návrh .
V prvním sloupci návrhové mřížky dotazu přidejte do pole Pole následující pole a pro pole Souhrn a Zobrazit vyberte následující možnosti:
Field: EmpAlias: EmployeeID Total: Group By Show: Yes
Toto pole seskupuje data podle ID zaměstnance.
Do druhého sloupce návrhové mřížky dotazu přidejte do pole Pole následující pole a pro pole Součet a Zobrazit vyberte následující možnosti:
Field: Freight Total: Sum Show: Yes
Toto pole sečte data o dopravě.
Do třetího sloupce návrhové mřížky dotazu zadejte do pole Pole následující výraz a pro pole Součet a Zobrazit proveďte následující výběry.
POZNÁMKA V následujícím příkladu se jako znak pokračování řádku používá podtržítko (_) na konci řádku. Při opětovném vytvoření tohoto příkladu odeberte podtržítko z konce řádku.
Field: RunTot: Format(DSum("Freight","Orders","[EmployeeID]<=" _& [EmpAlias] & ""),"$0,000.00") Total: Expression Show: Yes
Výraz v poli Pole používá funkci DSum() k sečtení pole Přepravné, pokud je ID zaměstnance menší nebo roven aktuální hodnotě EmpAlias, a pak naformátuje pole v dolarech.
Spusťte dotaz. Všimněte si, že pole RunTot zobrazuje následující záznamy se průběžným součtem:
Employee SumOfFreight RunTot ------------------------------------------------- Davolio, Nancy $8,836.64 $8,836.64 Fuller, Andrew $8,696.41 $17,533.05 Leverling,Janet $10,884.74 $28,417.79 Peacock, Margaret $11,346.14 $39,763.93 Buchanan, Steven $3,918.71 $43,682.64 Suyama, Michael $3,780.47 $47,463.11 King, Robert $6,665.44 $54,128.55 Callahan, Laura $7,487.88 $61,616.43 Dodsworth, Anne $3,326.26 $64,942.69
Váš názor
https://aka.ms/ContentUserFeedback.
Připravujeme: V průběhu roku 2024 budeme postupně vyřazovat problémy z GitHub coby mechanismus zpětné vazby pro obsah a nahrazovat ho novým systémem zpětné vazby. Další informace naleznete v tématu:Odeslat a zobrazit názory pro