Çözüldü Access'te Metin Olarak Saklanan Sayıların Ortalamasını Almak

DoğanD

Altın Üye
Katılım
22 Eylül 2023
Mesajlar
427
Excel Vers. ve Dili
Office 365 TR
Altın Üyelik Bitiş Tarihi
05-10-2028
Herkese merhaba,

Daha öncesinde Excel olarak kullandığım veri tabanımı, verilerin artmasından ve performans kaybından ötürü Access'e taşıdım. Fakat, Excel'de tür tanımlama zorunluluğu olmadığı için SQL sorgusunda AVG işlevini Group By ile birlikte kullanarak tüm verinin ortalamasını alabiliyordum. Verilerimin ondalıklı olması ve SQL'e virgül ile aktarırken problem yaşadığım için metin tanımlı sütuna yazdırdım ve tahmin edebileceğiniz üzere bu sebepten verileri çekerken ortalama alamıyorum. Yaklaşık 80B satırlık ve 17 sütundan oluşan bir verim var ve her geçen gün artmaya devam edecek. Sorguyu aşağıya ekledim, örnek dosya ihtiyacı olmadığını düşünüyorum.

Çözüm için öneri ve desteklerinizi bekliyorum, teşekkürler.

Kod:
sorgu = "select [Ay],[Yil],[Depo],[Vardiya],[EkipLideri],[Personel],sum([Temizlik]),sum([Birlestirme]),avg([MalKabul]),avg([Kasa]),avg([Toplama]),avg([Lokasyon]),avg([Sayim]),avg([AlimIade]),avg([ToplamIs])  from[Performans] group by [Depo],[Ay],[Yil],[Personel],[Vardiya],[EkipLideri]"
 

Korhan Ayhan

Administrator
Yönetici
Admin
Katılım
15 Mart 2005
Mesajlar
42,250
Excel Vers. ve Dili
Microsoft 365 Tr-En 64 Bit
Merhaba,

Deneme şansım yok ama alanı sayısala çevirmek belki işe yarabilir..

Avg(CDbl([MalKabul]))

Belki noktaları virgül olarak değiştirmek gerekebilir..

Avg(CDbl(Replace([MalKabul],".",",")))
 

DoğanD

Altın Üye
Katılım
22 Eylül 2023
Mesajlar
427
Excel Vers. ve Dili
Office 365 TR
Altın Üyelik Bitiş Tarihi
05-10-2028
Maalesef Korhan Bey, her ikisi de işe yaramadı. Replace kısmında arada bulunan virgüller yine problem oluyor.

Şöyle dolaylı bir çözüm ürettim; DB Tabloda hesaplanmış alan ekledim ve metin olarak saklanan ifadelerin tümünü CDbl ile çoğalttım. Bu, sütun sayısını neredeyse %50 arttırdı fakat başka bir yol bulamadım. Yani veriyi içeriye aktarırken metin olarak X sütununa aktarıp, içeride Y sütununda Double'a çevirip, çevirdiğim veriyi geri çekiyorum. Belki aynı problemi yaşayan bir arkadaşa da yardımcı olur.

Daha kısa yoldan bir çözüm varsa da uygulamayı çok isterim. Teşekkürler.
 

Korhan Ayhan

Administrator
Yönetici
Admin
Katılım
15 Mart 2005
Mesajlar
42,250
Excel Vers. ve Dili
Microsoft 365 Tr-En 64 Bit
Şöyle olabilir mi..

Avg(CDbl(Replace([MalKabul],'.',',')))
 
Üst