Sorgudan Sql İle Veri Çekme İşlemi Sırasında Hata Mesajı

1 2
27/09/2024, 16:00

atoykan

DSum kullandığınızda sonuç boş/NULL dönerse, CDbl bu değeri sayısal bir tipe dönüştüremediği için hata verir. Bu nedenle boş sonuçları yönetmek için NZ fonksiyonunu kullanabilirsiniz diye belirtmiştim. Aşağıdaki gibi dener misiniz?

SELECT SubQuery.Liman, SubQuery.UrunKod, SubQuery.UrunAdi, SubQuery.ToplaMiktar, SubQuery.Satis, (SubQuery.ToplaMiktar - SubQuery.Satis) AS Kalan
FROM (SELECT tbl_Products.Liman, tbl_Products.UrunKod, tbl_Products.UrunAdi, Sum(tbl_Products.Miktar) AS ToplaMiktar, CDbl(Nz(DSum("[Miktar]", "tbl_Sales", "[Liman]='" & [Liman] & "' AND [UrunKod]='" & [UrunKod] & "'"), 0)) AS Satis
FROM tbl_Products
GROUP BY tbl_Products.Liman, tbl_Products.UrunKod, tbl_Products.UrunAdi) AS SubQuery;
27/09/2024, 17:40

truhi

(27/09/2024, 16:00)atoykan yazdı: DSum kullandığınızda sonuç boş/NULL dönerse, CDbl bu değeri sayısal bir tipe dönüştüremediği için hata verir. Bu nedenle boş sonuçları yönetmek için NZ fonksiyonunu kullanabilirsiniz diye belirtmiştim. Aşağıdaki gibi dener misiniz?

SELECT SubQuery.Liman, SubQuery.UrunKod, SubQuery.UrunAdi, SubQuery.ToplaMiktar, SubQuery.Satis, (SubQuery.ToplaMiktar - SubQuery.Satis) AS Kalan
FROM (SELECT tbl_Products.Liman, tbl_Products.UrunKod, tbl_Products.UrunAdi, Sum(tbl_Products.Miktar) AS ToplaMiktar, CDbl(Nz(DSum("[Miktar]", "tbl_Sales", "[Liman]='" & [Liman] & "' AND [UrunKod]='" & [UrunKod] & "'"), 0)) AS Satis
FROM tbl_Products
GROUP BY tbl_Products.Liman, tbl_Products.UrunKod, tbl_Products.UrunAdi) AS SubQuery;

Hocam teşekkür ederim, bu sorguda Access ortamında çalışıyor, yalnız excel' e veriyi çekerken

Excel tarafındaki Sql sorgusunda "ifade' de tanımlanmamız NZ işlevi" şeklinde hata mesajı veriyor veriyor.

Kalan satırında Aşağıdaki şeklilde düzenleme yapınca işim çözüldü aslında;
Kod:
IIF(SubQuery.Satis>0, SubQuery.ToplaMiktar - SubQuery.Satis, SubQuery.ToplaMiktar) AS Kalan

başka bir çözüm var mıdır? bilemiyorum

selamlar,
iyi Çalışmalar.
27/09/2024, 19:03

atoykan

(26/09/2024, 23:06)atoykan yazdı: DSum alanlarınız hesaplanan alan bunun sonucu da default olarak string döner. Bu alanlar için CInt, CDbl, CCur gibi fonksiyonlarla dönüştürme işlemi yapmanız gerekir. Uygun değer bulunması bulunmaması durumlarına göre NZ fonksiyonu veya mantıksal sınama IIF fonksiyonu gibi yardımcılar kullanabilirsiniz.
Excel genel sürümlerinde NZ fonksiyonunu okuyamıyor, alıntı yaptığım mesajımda da belirttim NZ veya IIF kullanmanız gerektiğini.
Başka yoları var mı? Tabiki var, sorgu sonuçlarının geçici tabloya yazdırılarak çekilmesinden tutun, sorgunun sorguyu tetiklemesine kadar birçok yöntem kullanılabilir.
27/09/2024, 20:22

truhi

(27/09/2024, 19:03)atoykan yazdı:
(26/09/2024, 23:06)atoykan yazdı: DSum alanlarınız hesaplanan alan bunun sonucu da default olarak string döner. Bu alanlar için CInt, CDbl, CCur gibi fonksiyonlarla dönüştürme işlemi yapmanız gerekir. Uygun değer bulunması bulunmaması durumlarına göre NZ fonksiyonu veya mantıksal sınama IIF fonksiyonu gibi yardımcılar kullanabilirsiniz.
Excel genel sürümlerinde NZ fonksiyonunu okuyamıyor, alıntı yaptığım mesajımda da belirttim NZ veya IIF kullanmanız gerektiğini.
Başka yoları var mı? Tabiki var, sorgu sonuçlarının geçici tabloya yazdırılarak çekilmesinden tutun, sorgunun sorguyu tetiklemesine kadar birçok yöntem kullanılabilir.

her şey için teşekkürler Hocam
iyi ki varsınız!
27/09/2024, 21:48

atoykan

Rica ederim, iyi çalışmalar.
1 2