• DİKKAT

    DOSYA İndirmek/Yüklemek için ÜCRETLİ ALTIN ÜYELİK Gereklidir!
    Altın Üyelik Hakkında Bilgi

Sorguda Kümülatif Toplam Alma

Katılım
5 Kasım 2007
Mesajlar
18
Excel Vers. ve Dili
excel 2003
Access de sorgularda yaptırdığım hesaplamaların kümülatif toplamlarını bir başka sütunda nasıl yazdırabilirim?
 
Merhaba..

Bunun bir çok yolu var.. Basit bir seçme sorgusuysa Dsum fonksiyonu işe yarayacaktır.. Fakat gruplandırılmış ve filtrelenmiş bir sorgu için alt sorgu kullanmak gerekir..

Örneğinizi ekler ve daha açıklamanızı bu örnek üzerinden yaparsanız yardımcı olalım..
 
Sayın Taruz hocamın konuya ilişkin daha önce hazırladığı bir dosyayı, yararlı olabilir düşüncesiyle ekliyorum...
 

Ekli dosyalar

İstediğiniz tam olarak nedir? Alan isimlerini kullnarak anlatır mısınız?
 
Ben kendi not ortalamamı hesaplayabilmem için [Grade Değeri * Credit] hesaplamam lazım. Sonra bunların toplamını Credit toplamına bölmek.

Grade Credit Grade*Credit
A=4 3 12
B=3 4 12

Toplam 7 24

Not ortalaması 24/7

şeklinde bir hesaplama yapmaya çalışıyorum.
 
Her dersin ayrı kredisi yok mu? Örneklemenizden yokmuş gibi anlaşılıyor.. Eğer öyle ise bu sorguyu sql görünümüne yazınız..:

Kod:
SELECT Course, Credit, Semester, Grade, Credit*Grade AS Kazanılan, 
Round((select sum(credit) from tablo1)/([credit]+[grade]),2) AS notort
FROM Tablo1 AS trz

Daha farklı bir sonuç ise örneğinize göre olması gerekli alan verilerini belirtin, sorguyu geliştirelim..
 
Evet her dersin kredisi farklı. Verdiğiniz kodu tam olarak nereye yazayacağımı anlamadım. Bütün hesaplamaların ardından not artalaması nerede görüntülenecek. Veritabanına yazabilir misiniz?
 
Boş bir sorgu açıp SQL görünümünü geçiniz ve boş sayfaya alttakileri yapıştırınız..:

Kod:
SELECT Course, Credit, Semester, Grade, Credit*Grade AS Kazanılan, 
Round((select sum(credit) from tablo1 where credit=trz.credit)/([credit]+[grade] ),2) AS notort
FROM Tablo1 AS trz

Bu sorgudaki notort alanı formülü Her dersin kredi toplamları toplatılmış ve çıkan sonuç kredi ve alınan not larının toplamına bölünerek oluşturulmuştur..

İstediğiniz değerler sorguda elde edilip listelenebilineceğinden tablonuza kaydetmenin gereği yok.. Geçerli bir nedeniniz varsa ve üstteki paragraftaki formulde mütabıksak tabloyada yazdırabiliriz..
 
Sanırım yapmak istediğimi anlatamadım.

Ben bir tablo oluşturdum. Burada dersi, kredisini ve alınan notu yazdım. Her dersin bir kredisi var. Her harf notunun da bir sayısal değeri var. Not ortalaması hesaplanırken şu yol izleniyor:

Dersin kredisi ile harf notunun sayısal değeri çarpılır (Kredi*Not). Bunların alt alta toplamı alınır (Sum(Kredi*Not)). Sonra derslerin kredileri toplanır (Sum(Kredi)). Ve Sum(Kredi*Not)/Sum(Kredi) hesaplaması not ortalamasını verir.

Tablodan dersi, kredisini ve notunu seçeceğim. Sonra (Kredi*Not), Sum(Kredi*Not), Sum(Kredi), Sum(Kredi*Not)/Sum(Kredi) hesaplamalarını yapmak istiyorum. Benim aklıma Sorgu dan başka bir şey gelmiyor.

Eğer bunu yapmak için başka bir öneriniz varsa, onun üzerinde çalışayım.
 
Sorguda istediğiniz değerler alınır. Son anlatımız daha net oldu..

Sanırım bu sorgu istediğiniz değerleri veriyor..:

Kod:
SELECT Course, Credit, Grade, [credit]*[grade] AS KrediNot, 
              (select sum( [credit]*[grade]) from Tablo1 where course=trz.course) AS KrediNotTop, 
              (select sum(credit) from tablo1 where credit=trz.credit) AS KrediTop, 
              [KrediNotTop]/[KrediTop] AS DersOrt
FROM Tablo1 AS trz
 
Bu hesaplamayı ben Excel de yapmıştım. Bir örneği ektedir. İlgilenir bakarsanız sevinirim. Böylece daha iyi anlaşılacaktır. Çünkü tam olarak yapmak istediğim budur. Ancak ben bunu access te yapmak istiyorum.
 

Ekli dosyalar

Siz her dersin kredi toplamı ayrıdır diyince ben ona göre hazırlamıştım.. Excel örneğinizde ders ayırt edilmeksizin toplamlar alınmış.. Bu konuda anlaşamamışız.. ;)

Sorgunuz budur..:

Kod:
SELECT Course, Credit, Grade, [credit]*[grade] AS KrediNot, 
(select sum( [credit]*[grade]) from Tablo1) AS KrediNotTop, 
(select sum(credit) from tablo1) AS KrediTop,
Round( [KrediNotTop]/[KrediTop],4) AS DersOrt
FROM Tablo1 AS trz
 
İşte budur. Çok teşekkür ederim. Şimdi bunu herkesin kullanabileceği bir form oluşturacağım. Tekrar çok teşekkür ederim.

Kolay gelsin.
 
Rica ederim.. Ama o sorgu veri girişine izin vermez, sadece sonuçları görüntüler.. ;)

Sorguyu kullanarak hem veri girip, hem de ortalamayı almak istiyorsanız önerdiğim sorgunun bu halini kullanınız..:

Kod:
SELECT Course, Credit, Grade, [credit]*[grade] AS KrediNot, 
dsum("[credit]*[grade]","Tablo1") AS KrediNotTop, 
dsum("credit","tablo1") AS KrediTop, 
Round( [KrediNotTop]/[KrediTop],4) AS DersOrt
FROM Tablo1 AS trz;
 
Şu anda ortalama hesabını yapabiliyorum. Ancak ben bunu form üzerinde bir düğmeye atayıp bir ileti kutusu üzerinde görüntületmeye çalışıyorum.

Aslında Form üzerinde metin kutusunda sürekli görünüyor. Ancak kayıt ekledikçe değilde, bütün dersleri, kredileri ve notları ekledikten sonra düğmeye basıp ileti kutusunda göstermesini istiyorum.

Nasıl yapılabilir?
 
Sayın ahmetokanyilmaz,

Fikir vermek üzere örneğiniz üstünde gösterdim.
 

Ekli dosyalar

  • vt1.rar
    vt1.rar
    27.9 KB · Görüntüleme: 24
Genel anlamda evet ama uygulamada zorluk yaşayabilirsiniz.
 
Geri
Üst