Jak utworzyć uruchomione zapytanie sum w programie Microsoft Access
Zaawansowane: wymaga specjalistycznego kodowania, współdziałania i wielodostępnych umiejętności.
Ten artykuł dotyczy pliku bazy danych programu Microsoft Access (.mdb) lub pliku bazy danych programu Microsoft Access (.accdb).
Podsumowanie
W tym artykule przedstawiono dwie metody, których można użyć do utworzenia uruchomionego zapytania sumy. Uruchomione zapytanie sum jest zapytaniem, w którym suma dla każdego rekordu jest sumą tego rekordu i wszystkich poprzednich rekordów. Ten typ zapytania jest przydatny do wyświetlania sum skumulowanych w grupie rekordów (lub w danym okresie) na grafie lub w raporcie.
Uwaga W przykładowym pliku Qrysmp00.exe widać pokaz techniki używanej w tym artykule.
Więcej informacji
Metoda 1
Pierwsza metoda używa funkcji DSum i kryteriów w zapytaniu, aby utworzyć sumę bieżącą w czasie. Funkcja DSum sumuje bieżący rekord i wszystkie poprzednie rekordy. Gdy zapytanie zostanie przeniesione do następnego rekordu, funkcja DSum zostanie uruchomiona ponownie i zaktualizuje łączną sumę.
Poniższe przykładowe zapytanie używa tabeli Orders z przykładowej bazy danych Northwind do utworzenia bieżącej sumy kosztów frachtu dla każdego miesiąca w 1997 roku. Przykładowe dane są ograniczone do jednego roku ze względu na wydajność. Ponieważ funkcja DSum jest uruchamiana raz dla każdego rekordu w zapytaniu, zakończenie przetwarzania zapytania może potrwać kilka sekund (w zależności od szybkości komputera). Aby utworzyć i uruchomić to zapytanie, wykonaj następujące kroki:
Otwórz przykładową bazę danych Northwind.
Utwórz nowe zapytanie select i dodaj tabelę Orders (Zamówienia ).
W menu Widok kliknij pozycję Sumy.
Uwaga W programie Access 2007 kliknij pozycję Sumy w grupie Pokaż/Ukryj na karcie Projekt .
W pierwszej kolumnie siatki projektu zapytania wpisz następujące wyrażenie w polu Pole i wprowadź następujące opcje dla pól Total, Sort i Show:
Field: AYear: DatePart("yyyy",[OrderDate]) Total: Group By Sort: Ascending Show: Yes
Wyrażenie w polu Pole wyświetla i sortuje część roku pola OrderDate.
W drugiej kolumnie siatki projektu zapytania wpisz następujące wyrażenie w polu Pole i wprowadź następujące opcje dla pól Suma, Sortowanie i Pokaż:
Field: AMonth: DatePart("m",[OrderDate]) Total: Group By Sort: Ascending Show: Yes
Wyrażenie w polu Pole sortuje i wyświetla część miesiąca pola Data zamówienia jako wartość całkowitą z zakresu od 1 do 12.
W trzeciej kolumnie siatki projektu zapytania wpisz następujące wyrażenie w polu Pole i wprowadź następujące opcje dla pól Total (Suma) i Show (Pokaż).
UWAGA W poniższym przykładzie podkreślenie (_) na końcu wiersza jest używane jako znak kontynuacji wiersza. Usuń podkreślenie z końca wiersza podczas ponownego tworzenia tego przykładu.
Field: RunTot: DSum("Freight","Orders","DatePart('m', _ [OrderDate])<=" & [AMonth] & " And DatePart('yyyy', _ [OrderDate])<=" & [AYear] & "") Total: Expression Show: Yes
Wyrażenie w polu Pole używa funkcji DSum() do sumowania pola Freight, gdy wartości w polach AMonth i AYear są mniejsze lub równe bieżącemu rekordowi przetwarzanego przez zapytanie.
W czwartej kolumnie siatki projektu zapytania wpisz następujące wyrażenie w polu Pole i wprowadź następujące opcje dla pól Total, Sort i Show:
Field: FDate: Format([OrderDate],"mmm") Total: Group By Sort: Ascending Show: Yes
Wyrażenie w polu Pole jest wyświetlane co miesiąc w formacie tekstowym, takim jak Jan, Feb, Mar itd.
W piątej kolumnie siatki projektu zapytania wpisz następujące wyrażenie w polu Pole, a następnie w polach Total(Suma), Criteria (Kryteria) i Show (Pokaż) wybierz następujące opcje:
Field: DatePart("yyyy",[OrderDate]) Total: Where Criteria: 1997 Show: No
Wyrażenie w polu Pole filtruje zestaw rekordów zapytania w celu uwzględnienia danych tylko z 1997 roku.
Uruchom zapytanie. Zwróć uwagę, że w polu RunTot są wyświetlane następujące rekordy z uruchomioną sumą:
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
Druga metoda używa zapytania sumy z funkcją DSum(), aby utworzyć sumę bieżącą dla grupy.
Poniższe przykładowe zapytanie używa tabeli Orders do sumy kosztów frachtu na pracownika, a także do obliczania bieżącej sumy frachtu. Aby utworzyć i uruchomić zapytanie, wykonaj następujące kroki:
Otwórz przykładową Northwind.mdb bazy danych.
Utwórz nowe zapytanie select i dodaj tabelę Orders (Zamówienia).
W menu Widok kliknij pozycję Sumy.
Uwaga W programie Access 2007 kliknij pozycję Sumy w grupie Pokaż/Ukryj na karcie Projekt .
W pierwszej kolumnie siatki projektu zapytania dodaj następujące pole do pola Pole i wprowadź następujące opcje dla pól Suma i Pokaż:
Field: EmpAlias: EmployeeID Total: Group By Show: Yes
To pole grupuje dane według identyfikatora EmployeeID.
W drugiej kolumnie siatki projektu zapytania dodaj następujące pole do pola Pole i wprowadź następujące opcje dla pól Suma i Pokaż:
Field: Freight Total: Sum Show: Yes
To pole sumuje dane frachtu.
W trzeciej kolumnie siatki projektu zapytania wpisz następujące wyrażenie w polu Pole i wprowadź następujące opcje dla pól Total (Suma) i Show (Pokaż).
UWAGA W poniższym przykładzie podkreślenie (_) na końcu wiersza jest używane jako znak kontynuacji wiersza. Usuń podkreślenie z końca wiersza podczas ponownego tworzenia tego przykładu.
Field: RunTot: Format(DSum("Freight","Orders","[EmployeeID]<=" _& [EmpAlias] & ""),"$0,000.00") Total: Expression Show: Yes
Wyrażenie w polu Pole używa funkcji DSum() do sumowania pola Freight, gdy identyfikator EmployeeID jest mniejszy lub równy bieżącemu parametrowi EmpAlias, a następnie formatuje pole w dolarach.
Uruchom zapytanie. Zwróć uwagę, że w polu RunTot są wyświetlane następujące rekordy z uruchomioną sumą:
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
Opinia
https://aka.ms/ContentUserFeedback.
Dostępne już wkrótce: W 2024 r. będziemy stopniowo wycofywać zgłoszenia z serwisu GitHub jako mechanizm przesyłania opinii na temat zawartości i zastępować go nowym systemem opinii. Aby uzyskać więcej informacji, sprawdź:Prześlij i wyświetl opinię dla