Skip to main content

AccessTr.neT


Sorguda Dsum Fonksiyonun Sql Koduna Dönüştürme

Sorguda Dsum Fonksiyonun Sql Koduna Dönüştürme

Çözüldü #1
Değerli Hocalarım merhaba;

Ekli database' de iki tablo mevcut, "tbl_Orders" ve "tbl_Mixer" bu iki tablodan bir sorgu oluşturmaya çalışıyorum.

"tbl_Orders" : "SözlesmeNo"
"tbl_Mixer" : "Sözlesme_1" , "Sözlesme_2" , "Sözlesme_3" , "Sözlesme_4" , "Sözlesme_5"

alanlarının her biriyle eşleştirecek, ilgili miktar alanlarını toplamak için Dsum fonksiyonu ile oluşturduğum 5 alanı Sql kodu ile oluşturmak mümkün müdür?


Kod:
SELECT DISTINCT tbl_Orders.SozlesmeNo, DSum("[Miktar_1]","tbl_Mixer","[Sozlesme_1] = '" & [SozlesmeNo] & "'") AS Miktar1, DSum("[Miktar_2]","tbl_Mixer","[Sozlesme_2] = '" & [SozlesmeNo] & "'") AS Miktar2, DSum("[Miktar_3]","tbl_Mixer","[Sozlesme_3] = '" & [SozlesmeNo] & "'") AS Miktar3, DSum("[Miktar_4]","tbl_Mixer","[Sozlesme_4] = '" & [SozlesmeNo] & "'") AS Miktar4, DSum("[Miktar_5]","tbl_Mixer","[Sozlesme_5] = '" & [SozlesmeNo] & "'") AS Miktar5
FROM tbl_Orders, tbl_Mixer;

yardım ve destekleriniz için şimdiden teşekkürler,
iyi akşamlar.
.rar db6.rar (Dosya Boyutu: 22,58 KB | İndirme Sayısı: 3)
truhi, 29-09-2009 tarihinden beri AccessTr.neT üyesidir.
Cevapla
#2
daha önce benzer bir isteğinizi cevaplamıştık, o konuyu incelediniz mi?
Cevapla
#3
(29/12/2024, 14:45)berduş yazdı: daha önce benzer bir isteğinizi cevaplamıştık, o konuyu incelediniz mi?

O konuyu inceledim Hocam
fakat buraya uyarlayamadım

Not: burada aklıma yeni gelen gelen "Sözlesme_1" , "Sözlesme_2" , "Sözlesme_3" , "Sözlesme_4" , "Sözlesme_5" adında 5 tane alt sorgu oluşturmak

sonra bu sorgularda miktar değerlerini çekmek, tabiki farklı bir çözüm bulamaz isem;


ilginiz için tekrar teşekkür ederim.
truhi, 29-09-2009 tarihinden beri AccessTr.neT üyesidir.
Cevapla
#4
SELECT DISTINCT tbl_Orders.SozlesmeNo,
Dsum ("[Miktar_1]", "tbl_Mixer", "[Sozlesme_1] = '" & tbl_Orders.SozlesmeNo & "'") AS Miktar1,
Dsum ("[Miktar_2]", "tbl_Mixer", "[Sozlesme_2] = '" & tbl_Orders.SozlesmeNo & "'") AS Miktar2,
Dsum ("[Miktar_3]", "tbl_Mixer", "[Sozlesme_3] = '" & tbl_Orders.SozlesmeNo & "'") AS Miktar3,
Dsum ("[Miktar_4]", "tbl_Mixer", "[Sozlesme_4] = '" & tbl_Orders.SozlesmeNo & "'") AS Miktar4,
Dsum ("[Miktar_5]", "tbl_Mixer", "[Sozlesme_5] = '" & tbl_Orders.SozlesmeNo & "'") AS Miktar5
FROM tbl_Orders;


bu şekilde denermisin
Cevapla
#5
(29/12/2024, 18:06)hedefkaya yazdı: SELECT DISTINCT tbl_Orders.SozlesmeNo,
Dsum ("[Miktar_1]", "tbl_Mixer", "[Sozlesme_1] = '" & tbl_Orders.SozlesmeNo & "'") AS Miktar1,
Dsum ("[Miktar_2]", "tbl_Mixer", "[Sozlesme_2] = '" & tbl_Orders.SozlesmeNo & "'") AS Miktar2,
Dsum ("[Miktar_3]", "tbl_Mixer", "[Sozlesme_3] = '" & tbl_Orders.SozlesmeNo & "'") AS Miktar3,
Dsum ("[Miktar_4]", "tbl_Mixer", "[Sozlesme_4] = '" & tbl_Orders.SozlesmeNo & "'") AS Miktar4,
Dsum ("[Miktar_5]", "tbl_Mixer", "[Sozlesme_5] = '" & tbl_Orders.SozlesmeNo & "'") AS Miktar5
FROM tbl_Orders;


bu şekilde denermisin

Hocam öncelikle ilginize teşekkür ederim
yalnız ben DSum fonsiyonu ile bu şekilde çözüm üretmiştim zaten;
Amacım Dsum fonksiyonundan kurtulmak, çünkü veriler çoğalınca hesaplamada sıkıntı yaşanıyor.
truhi, 29-09-2009 tarihinden beri AccessTr.neT üyesidir.
Cevapla
#6
Çalışmıyorsunuz ya da yeteri kadar dikkat etmiyorsunuz Sayın @truhi.
DSUM işlemi ne yapıyor tbl_Mixer tablonuzda tbl_orders tablonuzdaki SozlesmeNo'ya göre toplam alıyor.
Bunu nasıl sorguya çeviririz birincisi bir toplam alacağımız için SUM değerine ihtiyacımız var, nereden alacağımız belli, kriter belli O zaman sadece sorguyu yazmak kalıyor
SELECT SUM(Miktar_1) FROM tbl_Mixer WHERE WHERE tbl_Mixer.Sozlesme_1 = tbl_Orders.SozlesmeNo
Bu sorgu bize tbl_Orders tablosundaki SozlesmeNo alanına eşit olan tbl_Mixer tablosundaki Miktar_1 toplamını verir. bunu Dsum yerine kullanabilirsiniz.
DSUm sorgumuzda nasıl kullanılmış
DSum("[Miktar_1]","tbl_Mixer","[Sozlesme_1] = '" & [SozlesmeNo] & "'") AS Miktar1 yani toplamı Miktar1 adı ile göstermiş, Dsum yerine sorgyu hazırlayabildiysek yer değiştirebiliriz. O halde
(SELECT SUM(Miktar_1) FROM tbl_Mixer WHERE tbl_Mixer.Sozlesme_1 = tbl_Orders.SozlesmeNo) AS Miktar1 Dsum 'dan farklı olmayacaktır. Buradan hareketle diğer Dsum lar için aynı işlemi yaparsanız sorgunuzun yeni hali
SELECT DISTINCT 
    tbl_Orders.SozlesmeNo,
    (SELECT SUM(Miktar_1) FROM tbl_Mixer WHERE tbl_Mixer.Sozlesme_1 = tbl_Orders.SozlesmeNo) AS Miktar1,
    (SELECT SUM(Miktar_2) FROM tbl_Mixer WHERE tbl_Mixer.Sozlesme_2 = tbl_Orders.SozlesmeNo) AS Miktar2,
    (SELECT SUM(Miktar_3) FROM tbl_Mixer WHERE tbl_Mixer.Sozlesme_3 = tbl_Orders.SozlesmeNo) AS Miktar3,
    (SELECT SUM(Miktar_4) FROM tbl_Mixer WHERE tbl_Mixer.Sozlesme_4 = tbl_Orders.SozlesmeNo) AS Miktar4,
    (SELECT SUM(Miktar_5) FROM tbl_Mixer WHERE tbl_Mixer.Sozlesme_5 = tbl_Orders.SozlesmeNo) AS Miktar5
FROM
    tbl_Orders;
olur. Biraz daha dikkat, biraz daha gayret lütfen. Bunları artık gözü kapalı çözmeniz gerek.
Cevapla

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

Yorum yapmak için üye olmanız gerekiyor

ya da
Task