Skip to main content

AccessTr.neT


Sorguda Sql Kodu Düzenlenmesi Hk.

Sorguda Sql Kodu Düzenlenmesi Hk.

Çözüldü #1
Kıymetli Hocalarım Merhaba,

Ekli dosyada yer alan sorguda;

"tbl_Sales" tablosundaki IE numarasına göre ve "tbl_Logistic" sayfalarındaki Sevk sayılarının toplamını getirdikten sonra;
Nakliye fiyatı ile çarparak Toplam Nakliye Tutarını getirmek isityordum;

Sorgunun Sql kodları aşağıdaki şekilde oluştu. Bunun kısaltılması yada daha farklı bir çözüm üretilmesi mümkün müdür?

Desteğiniz için şimdiden teşekkürler,

iyi Çalışmalar.

Kod:
SELECT tbl_Sales.id, tbl_Sales.isEmri, IIf(Sum(tbl_Sales.Sevk) Is Null,0,Sum(tbl_Sales.Sevk)) AS Sevk1, IIf(Sum([tbl_Logistic].[Sevk]) Is Null,0,Sum([tbl_Logistic].[Sevk])) AS Sevk2, (IIf(Sum(tbl_Logistic.Sevk) Is Null,0,Sum(tbl_Logistic.Sevk))+IIf(Sum(tbl_Sales.Sevk) Is Null,0,Sum(tbl_Sales.Sevk))) AS ToplamSevk, tbl_Sales.Nakliye, IIf([Nakliye]>0,(IIf(Sum([tbl_Logistic].[Sevk]) Is Null,0,Sum([tbl_Logistic].[Sevk]))+IIf(Sum([tbl_Sales].[Sevk]) Is Null,0,Sum([tbl_Sales].[Sevk])))*Nakliye,0) AS NakliyeTutar
FROM tbl_Sales LEFT JOIN tbl_Logistic ON tbl_Sales.id = tbl_Logistic.salesIE
GROUP BY tbl_Sales.id, tbl_Sales.isEmri, tbl_Sales.Nakliye;

truhi, 29-09-2009 tarihinden beri AccessTr.neT üyesidir.
Cevapla
#2
Yine örneğiniz yok.
Cevapla
#3
(09/12/2024, 19:48)atoykan yazdı: Yine örneğiniz yok.

Dosyayı eklemiştim ama gitmemiş, şimdi zipli olarak ileityorum Hocam..
.rar Db3.rar (Dosya Boyutu: 56,66 KB | İndirme Sayısı: 2)
truhi, 29-09-2009 tarihinden beri AccessTr.neT üyesidir.
Cevapla
#4
SELECT SL.id, SL.isEmri, IIf(Sum(SL.Sevk) Is Null, 0, Sum(SL.Sevk)) AS Sevk1, IIf(Sum(LG.Sevk) Is Null, 0, Sum(LG.Sevk)) AS Sevk2, IIf(Sum(SL.Sevk) Is Null, 0, Sum(SL.Sevk)) + IIf(Sum(LG.Sevk) Is Null, 0, Sum(LG.Sevk)) AS ToplamSevk, SL.Nakliye, IIf(SL.Nakliye > 0, (IIf(Sum(SL.Sevk) Is Null, 0, Sum(SL.Sevk)) + IIf(Sum(LG.Sevk) Is Null, 0, Sum(LG.Sevk))) * SL.Nakliye, 0) AS NakliyeTutar
FROM
tbl_Sales AS SL
LEFT JOIN
tbl_Logistic AS LG
ON
SL.id = LG.salesIE
GROUP BY
SL.id, SL.isEmri, SL.Nakliye;
olarak düzenlenebilir. tbl_sales as SL ve tbl_Logistics as LG olarak Sl ve LG adları ile sadeleştirilirse sorgu daha rahat okunabilir. Sorgu amaca uygun daha kısa hale gelmesi amacın dışında bir yapı oluşturur.
Cevapla
#5
(09/12/2024, 20:27)atoykan yazdı:
SELECT SL.id, SL.isEmri, IIf(Sum(SL.Sevk) Is Null, 0, Sum(SL.Sevk)) AS Sevk1, IIf(Sum(LG.Sevk) Is Null, 0, Sum(LG.Sevk)) AS Sevk2, IIf(Sum(SL.Sevk) Is Null, 0, Sum(SL.Sevk)) + IIf(Sum(LG.Sevk) Is Null, 0, Sum(LG.Sevk)) AS ToplamSevk, SL.Nakliye, IIf(SL.Nakliye > 0, (IIf(Sum(SL.Sevk) Is Null, 0, Sum(SL.Sevk)) + IIf(Sum(LG.Sevk) Is Null, 0, Sum(LG.Sevk))) * SL.Nakliye, 0) AS NakliyeTutar
FROM
tbl_Sales AS SL
LEFT JOIN
tbl_Logistic AS LG
ON
SL.id = LG.salesIE
GROUP BY
SL.id, SL.isEmri, SL.Nakliye;
olarak düzenlenebilir. tbl_sales as SL ve tbl_Logistics as LG olarak Sl ve LG adları ile sadeleştirilirse sorgu daha rahat okunabilir. Sorgu amaca uygun daha kısa hale gelmesi amacın dışında bir yapı oluşturur.

Çok teşekkür ederim Hocam
iyi akşamlar
truhi, 29-09-2009 tarihinden beri AccessTr.neT üyesidir.
Cevapla
#6
Rica ederim. NZ ile daha kısa olabilir ancak önceki bağlantılı konunuzda excelle kullandığınız belirttiğiniz ve IIF çözümünü biz verdiğimiz için o kısma girmedim bile, ancak sadece Access vb için kullanacağınız zaman NZ daha da kısa ve anlamlı hale getirir.
Cevapla

Bir hesap oluşturun veya yorum yapmak için giriş yapın

Yorum yapmak için üye olmanız gerekiyor

ya da
Task