Microsoft Access'te çalışan toplamlar sorgusu oluşturma
Gelişmiş: Uzman kodlama, birlikte çalışabilirlik ve çok kullanıcılı beceriler gerektirir.
Bu makale, Microsoft Access veritabanı (.mdb) dosyası veya Microsoft Access veritabanı (.accdb) dosyası için geçerlidir.
Özet
Bu makalede, çalışan toplamlar sorgusu oluşturmak için kullanabileceğiniz iki yöntem gösterilmektedir. Çalışan toplamlar sorgusu, her kaydın toplamının söz konusu kaydın ve önceki kayıtların toplamı olduğu bir sorgudur. Bu sorgu türü, bir grafikte veya raporda bir kayıt grubu (veya belirli bir süre içinde) üzerinde toplu toplamları görüntülemek için kullanışlıdır.
Not Bu makalede kullanılan tekniğin tanıtımını örnek dosya Qrysmp00.exe görebilirsiniz.
Daha Fazla Bilgi
Yöntem 1
İlk yöntem, zaman içinde çalışan bir toplam oluşturmak için bir sorgudaki DSum işlevini ve ölçütlerini kullanır. DSum işlevi geçerli kaydı ve önceki kayıtların toplamını alır. Sorgu bir sonraki kayda geçtiğinde, DSum işlevi yeniden çalışır ve kümülatif toplamı güncelleştirir.
Aşağıdaki örnek sorgu, 1997'de her ay için navlun maliyetlerinin çalışan bir toplamını oluşturmak için Northwind örnek veritabanındaki Orders tablosunu kullanır. Örnek veriler performans nedenleriyle bir yılla sınırlıdır. DSum işlevi sorgudaki her kayıt için bir kez çalıştığından, sorgunun işlenmesinin tamamlanması birkaç saniye sürebilir (bilgisayarınızın hızına bağlı olarak). Bu sorguyu oluşturmak ve çalıştırmak için şu adımları izleyin:
Northwind örnek veritabanını açın.
Yeni bir seçme sorgusu oluşturun ve Orders tablosunu ekleyin.
Görünüm menüsünde Toplamlar'a tıklayın.
Not Access 2007'de, Tasarım sekmesinin Göster/Gizle grubunda Toplamlar'a tıklayın.
Sorgu tasarım kılavuzunun ilk sütununda, Alan kutusuna aşağıdaki ifadeyi yazın ve Toplam, Sıralama ve Göster kutuları için aşağıdaki seçimleri yapın:
Field: AYear: DatePart("yyyy",[OrderDate]) Total: Group By Sort: Ascending Show: Yes
Alan kutusundaki ifade, OrderDate alanının yıl bölümünü görüntüler ve sıralar.
Sorgu tasarım kılavuzunun ikinci sütununda, Alan kutusuna aşağıdaki ifadeyi yazın ve Toplam, Sıralama ve Göster kutuları için aşağıdaki seçimleri yapın:
Field: AMonth: DatePart("m",[OrderDate]) Total: Group By Sort: Ascending Show: Yes
Alan kutusundaki ifade, Sipariş Tarihi alanının ay bölümünü sıralar ve 1 ile 12 arasında bir tamsayı değeri olarak görüntüler.
Sorgu tasarım kılavuzunun üçüncü sütununda, Alan kutusuna aşağıdaki ifadeyi yazın ve Toplam ve Göster kutuları için aşağıdaki seçimleri yapın.
NOT Aşağıdaki örnekte, çizginin sonundaki bir alt çizgi (_) çizgi devamlılık karakteri olarak kullanılır. Bu örneği yeniden oluştururken alt çizgiyi satırın sonundan kaldırın.
Field: RunTot: DSum("Freight","Orders","DatePart('m', _ [OrderDate])<=" & [AMonth] & " And DatePart('yyyy', _ [OrderDate])<=" & [AYear] & "") Total: Expression Show: Yes
Alan kutusundaki ifade, hem AMonth hem de AYear alanlarındaki değerler sorgunun işlemekte olduğu geçerli kayıttan küçük veya buna eşit olduğunda Navlun alanını toplamak için DSum() işlevini kullanır.
Sorgu tasarım kılavuzunun dördüncü sütununda, Alan kutusuna aşağıdaki ifadeyi yazın ve Toplam, Sıralama ve Göster kutuları için aşağıdaki seçimleri yapın:
Field: FDate: Format([OrderDate],"mmm") Total: Group By Sort: Ascending Show: Yes
Alan kutusundaki ifade, her ayı Oca, Şub, Mar vb. metin biçiminde görüntüler.
Sorgu tasarım kılavuzunun beşinci sütununda, Alan kutusuna aşağıdaki ifadeyi yazın ve Toplam, Ölçüt ve Göster kutuları için aşağıdaki seçimleri yapın:
Field: DatePart("yyyy",[OrderDate]) Total: Where Criteria: 1997 Show: No
Alan kutusundaki ifade, sorgunun kayıt kümesini yalnızca 1997 verilerini içerecek şekilde filtreler.
Sorguyu çalıştırın. RunTot alanında aşağıdaki kayıtların çalışan bir toplamla görüntülendiğini unutmayın:
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
Yöntem 2
İkinci yöntem, bir grup üzerinde çalışan bir toplam oluşturmak için DSum() işlevine sahip bir toplamlar sorgusu kullanır.
Aşağıdaki örnek sorgu, çalışan başına navlun maliyetlerini toplamak ve navlun çalışan toplamını hesaplamak için Orders tablosunu kullanır. Sorguyu oluşturmak ve çalıştırmak için şu adımları izleyin:
Örnek veritabanı Northwind.mdb açın.
Yeni bir seçme sorgusu oluşturun ve Orders tablosunu ekleyin.
Görünüm menüsünde Toplamlar'a tıklayın.
Not Access 2007'de, Tasarım sekmesinin Göster/Gizle grubunda Toplamlar'a tıklayın.
Sorgu tasarım kılavuzunun ilk sütununda, Alan kutusuna aşağıdaki alanı ekleyin ve Toplam ve Göster kutuları için aşağıdaki seçimleri yapın:
Field: EmpAlias: EmployeeID Total: Group By Show: Yes
Bu alan verileri EmployeeID'ye göre gruplar.
Sorgu tasarım kılavuzunun ikinci sütununda, Alan kutusuna aşağıdaki alanı ekleyin ve Toplam ve Göster kutuları için aşağıdaki seçimleri yapın:
Field: Freight Total: Sum Show: Yes
Bu alan, navlun verilerinin toplamını alır.
Sorgu tasarım kılavuzunun üçüncü sütununda, Alan kutusuna aşağıdaki ifadeyi yazın ve Toplam ve Göster kutuları için aşağıdaki seçimleri yapın.
NOT Aşağıdaki örnekte, çizginin sonundaki bir alt çizgi (_) çizgi devamlılık karakteri olarak kullanılır. Bu örneği yeniden oluştururken alt çizgiyi satırın sonundan kaldırın.
Field: RunTot: Format(DSum("Freight","Orders","[EmployeeID]<=" _& [EmpAlias] & ""),"$0,000.00") Total: Expression Show: Yes
Alan kutusundaki ifade, EmployeeID geçerli EmpAlias değerinden küçük veya buna eşit olduğunda Navlun alanını toplamak için bir DSum() işlevi kullanır ve alanı dolar cinsinden biçimlendirer.
Sorguyu çalıştırın. RunTot alanında aşağıdaki kayıtların çalışan bir toplamla görüntülendiğini unutmayın:
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
Geri Bildirim
https://aka.ms/ContentUserFeedback.
Çok yakında: 2024 boyunca, içerik için geri bildirim mekanizması olarak GitHub Sorunları’nı kullanımdan kaldıracak ve yeni bir geri bildirim sistemiyle değiştireceğiz. Daha fazla bilgi için bkz.Gönderin ve geri bildirimi görüntüleyin