Sorgu İçerisinde Tablodan İki Alan Çarpımının Toplamını Alma

1 2
11/12/2024, 12:24

truhi

Değerli Hocalarım merhabalar,

Ekli tabloda "Tbl_Logistic" sayfasında "miktar" ve "birim fiyat" alanlarının çarpımından; "Tutar" alanını hesapladıktan sonra;

Aşağıdaki şekilde Sorguda "Tutar" alanının toplamını alabiliyorum.
Kod:
SELECT LGS.tedIE, Sum(LGS.Tutar) AS ToplaTutar
FROM tbl_Logistic AS LGS
GROUP BY LGS.tedIE;


Sormak istediğim tabloda "Tutar" alanın oluşturmadan; sorguda Tutar alanı (miktar*BirimFiyat) toplamını getirmek nasıl mümkün olabilir?

Özetle Tablo da Tutar alanını oluşturmadan bunu sorguda getirmek istiyorum.

Yardımlarınız için şimdiden teşekkürler,
iyi Çalışmalar.
11/12/2024, 12:33

onur_can

Merhaba Sn @truhi,
aşağıdaki şekilde getirebilirsiniz.
SELECT LGS.tedIE, Sum(Birimfiyat*miktar) AS ToplaTutar
FROM tbl_Logistic AS LGS
GROUP BY LGS.tedIE;
11/12/2024, 13:48

truhi

(11/12/2024, 12:33)onur_can yazdı: Merhaba Sn @truhi,
aşağıdaki şekilde getirebilirsiniz.
SELECT LGS.tedIE, Sum(Birimfiyat*miktar) AS ToplaTutar
FROM tbl_Logistic AS LGS
GROUP BY LGS.tedIE;

Onur Hocam Teşekkürler
11/12/2024, 15:32

truhi

(11/12/2024, 12:33)onur_can yazdı: Merhaba Sn @truhi,
aşağıdaki şekilde getirebilirsiniz.
SELECT LGS.tedIE, Sum(Birimfiyat*miktar) AS ToplaTutar
FROM tbl_Logistic AS LGS
GROUP BY LGS.tedIE;

Değerli Hocalarım tecrübelerinize dayanak sizlere soruyorum.

1- (Birimfiyat*miktar) çarpımını tabloda oluşturup hazır verileri çekmek,

Kod:
SELECT LGS.tedIE, Sum(LGS.Tutar) AS ToplaTutar

2- Sorguda çarpma işlemini buradaki gibi sorguda yaptırmak,

Kod:
SELECT LGS.tedIE, Sum(Birimfiyat*miktar) AS ToplaTutar

bunun hangisinde sorgu daha hızlı çalışır,
avantaj ve dezavantajları neler olabilir?

yardımlarınız için şimdiden teşekkür ederim.
iyi Çalışmalar.
11/12/2024, 15:59

atoykan

Tekrar hatırlatalım: "Tablolar verileri tutmak içindir, işlem yapmak için değil." Şayet hesaplama işlemini form, sorgu üzerinden yapıp sonuç olarak tabloya kaydedecekseniz sorgunun hesaplama yapmadan sabit veriyi getirmesi doğal olarak daha hızlıdır. Bu hız farkını da ancak bigdata dediğimiz büyük veri setlerinde -binlerce kayıt olan tablolarda- görürsünüz 300-500 kayıt olan tablolarda bu hız farkını görmezsiniz. Veri tabanında aslolan raporlanabilecek herşeyi sorgu ile yapmaktır, yani birim fiyat ve miktar belli iken toplam tutarı hesaplayıp tabloya kaydetmezsiniz. Ancak Access'in mevcut kapasitesi ve motor becerileri gözetilerek çok büyük veri setleri ile çalışacaksanız, performans açısından olumlu katkı sağladığı mutlak durumlarda bu husus dikkate alınabilir ve toplam tutar tabloya eklenebilir, onun dışında alan yönetimi ve veri tabanı mimarisi noktasında gereksizdir, sorgu zaten işlemi yapıp sonucu size verebilmektedir.
11/12/2024, 16:15

truhi

(11/12/2024, 15:59)atoykan yazdı: Tekrar hatırlatalım: "Tablolar verileri tutmak içindir, işlem yapmak için değil." Şayet hesaplama işlemini form, sorgu üzerinden yapıp sonuç olarak tabloya kaydedecekseniz sorgunun hesaplama yapmadan sabit veriyi getirmesi doğal olarak daha hızlıdır. Bu hız farkını da ancak bigdata dediğimiz büyük veri setlerinde -binlerce kayıt olan tablolarda- görürsünüz 300-500 kayıt olan tablolarda bu hız farkını görmezsiniz. Veri tabanında aslolan raporlanabilecek herşeyi sorgu ile yapmaktır, yani birim fiyat ve miktar belli iken toplam tutarı hesaplayıp tabloya kaydetmezsiniz. Ancak Access'in mevcut kapasitesi ve motor becerileri gözetilerek çok büyük veri setleri ile çalışacaksanız, performans açısından olumlu katkı sağladığı mutlak durumlarda bu husus dikkate alınabilir ve toplam tutar tabloya eklenebilir, onun dışında alan yönetimi ve veri tabanı mimarisi noktasında gereksizdir, sorgu zaten işlemi yapıp sonucu size verebilmektedir.

Hocam kıymetli bilgi ve önerileriniz için size minnettarım.

sağ olun, var olun...
1 2