rica ederim
iyi çalışmalar)
Sorguda Hesaplama Hapmak.
farklı 1 yöntemle Kullanıcı Tanımlı Fonksiyon Kullanarak yaptım çok daha hızlı ve tüm alanları alıyor
öncelikle çalışmanıza bir modül ekleyip aşağıdaki kodları ekleyin
öncelikle çalışmanıza bir modül ekleyip aşağıdaki kodları ekleyin
Dim xKalan As Long
Function VeriBol(xTERMIN As Long, xSiparis As Long, xSec As Byte) As Long
If xSec > 0 Then xSiparis = xKalan
If xSec < 2 Then
xSonuc = IIf(xSiparis >= xTERMIN, xTERMIN, xSiparis)
xKalan = xSiparis - xSonuc
Else
xSonuc = xKalan 'IIf(xSiparis >= xKalan, xSiparis - xKalan, 0)
End If
VeriBol = xSonuc
End Function
sonra da sorgunuzun kodunu aşağıdaki kodla değiştirinSELECT T_Veriler.STOK, T_Veriler.PLANLANAN, T_Veriler.SİPARİŞİ
, T_Veriler.TERMİN1, VeriBol(TERMİN1,SİPARİŞİ,0) AS GELEN1, VeriBol(TERMİN1,SİPARİŞİ,2) AS KALANSP1
, T_Veriler.TERMİN2, VeriBol(TERMİN2,SİPARİŞİ,1) AS GELEN2, VeriBol(TERMİN2,SİPARİŞİ,2) AS KALANSP2
, T_Veriler.TERMİN3, VeriBol(TERMİN3,SİPARİŞİ,1) AS GELEN3, VeriBol(TERMİN3,SİPARİŞİ,2) AS KALANSP3
, T_Veriler.TERMİN4, VeriBol(TERMİN4,SİPARİŞİ,1) AS GELEN4, VeriBol(TERMİN4,SİPARİŞİ,2) AS KALANSP4
, T_Veriler.TERMİN5, VeriBol(TERMİN5,SİPARİŞİ,1) AS GELEN5, VeriBol(TERMİN5,SİPARİŞİ,2) AS KALANSP5
, T_Veriler.TERMİN6, VeriBol(TERMİN6,SİPARİŞİ,1) AS GELEN6, VeriBol(TERMİN6,SİPARİŞİ,2) AS KALANSP6
, T_Veriler.TERMİN7, VeriBol(TERMİN7,SİPARİŞİ,1) AS GELEN7, VeriBol(TERMİN7,SİPARİŞİ,2) AS KALANSP7
, T_Veriler.TERMİN8, VeriBol(TERMİN8,SİPARİŞİ,1) AS GELEN8, VeriBol(TERMİN8,SİPARİŞİ,2) AS KALANSP8
, T_Veriler.TERMİN9, VeriBol(TERMİN9,SİPARİŞİ,1) AS GELEN9, VeriBol(TERMİN9,SİPARİŞİ,2) AS KALANSP9
, T_Veriler.TERMİN10, VeriBol(TERMİN10,SİPARİŞİ,1) AS GELEN10, VeriBol(TERMİN10,SİPARİŞİ,2) AS KALANSP10
, T_Veriler.TERMİN11, VeriBol(TERMİN11,SİPARİŞİ,1) AS GELEN11, VeriBol(TERMİN11,SİPARİŞİ,2) AS KALANSP11
, T_Veriler.TERMİN12, VeriBol(TERMİN12,SİPARİŞİ,1) AS GELEN12, VeriBol(TERMİN12,SİPARİŞİ,2) AS KALANSP12
FROM T_Veriler
ORDER BY T_Veriler.STOK;
dilerim işinize yarar)
Yalniz verilerinizin tam sayı olduğu varsayılmıştır
yada
fonksiyon kodu
fonksiyon kodu
Function VeriBol2(Optional xSec As Byte, Optional xTERMIN As Long, Optional xSiparis As Long) As Long
If IsNull(xSec) Then VeriBol2 = xKalan: Exit Function
If xSec = 1 Then xSiparis = xKalan
xSonuc = IIf(xSiparis >= xTERMIN, xTERMIN, xSiparis)
xKalan = xSiparis - xSonuc
VeriBol2 = xSonuc
End Function
sorgu koduSELECT T_Veriler.STOK, T_Veriler.PLANLANAN, T_Veriler.SİPARİŞİ
, T_Veriler.TERMİN1, VeriBol2(0,TERMİN1,SİPARİŞİ) AS GELEN1, VeriBol2() AS KALANSP1
, T_Veriler.TERMİN2, VeriBol2(1,TERMİN2) AS GELEN2, VeriBol2() AS KALANSP2
, T_Veriler.TERMİN3, VeriBol2(1,TERMİN3) AS GELEN3, VeriBol2() AS KALANSP3
, T_Veriler.TERMİN4, VeriBol2(1,TERMİN4) AS GELEN4, VeriBol2() AS KALANSP4
, T_Veriler.TERMİN5, VeriBol2(1,TERMİN5) AS GELEN5, VeriBol2() AS KALANSP5
, T_Veriler.TERMİN6, VeriBol2(1,TERMİN6) AS GELEN6, VeriBol2() AS KALANSP6
, T_Veriler.TERMİN7, VeriBol2(1,TERMİN7) AS GELEN7, VeriBol2() AS KALANSP7
, T_Veriler.TERMİN8, VeriBol2(1,TERMİN8) AS GELEN8, VeriBol2() AS KALANSP8
, T_Veriler.TERMİN9, VeriBol2(1,TERMİN9) AS GELEN9, VeriBol2() AS KALANSP9
, T_Veriler.TERMİN10, VeriBol2(1,TERMİN10) AS GELEN10, VeriBol2() AS KALANSP10
, T_Veriler.TERMİN11, VeriBol2(1,TERMİN11) AS GELEN11, VeriBol2() AS KALANSP11
, T_Veriler.TERMİN12, VeriBol2(1,TERMİN12) AS GELEN12, VeriBol2() AS KALANSP12
FROM T_Veriler
ORDER BY T_Veriler.STOK;
(14/04/2023, 03:50)berduş yazdı: yada
fonksiyon kodu
sorgu koduFunction VeriBol2(Optional xSec As Byte, Optional xTERMIN As Long, Optional xSiparis As Long) As Long
If IsNull(xSec) Then VeriBol2 = xKalan: Exit Function
If xSec = 1 Then xSiparis = xKalan
xSonuc = IIf(xSiparis >= xTERMIN, xTERMIN, xSiparis)
xKalan = xSiparis - xSonuc
VeriBol2 = xSonuc
End Function
SELECT T_Veriler.STOK, T_Veriler.PLANLANAN, T_Veriler.SİPARİŞİ
, T_Veriler.TERMİN1, VeriBol2(0,TERMİN1,SİPARİŞİ) AS GELEN1, VeriBol2() AS KALANSP1
, T_Veriler.TERMİN2, VeriBol2(1,TERMİN2) AS GELEN2, VeriBol2() AS KALANSP2
, T_Veriler.TERMİN3, VeriBol2(1,TERMİN3) AS GELEN3, VeriBol2() AS KALANSP3
, T_Veriler.TERMİN4, VeriBol2(1,TERMİN4) AS GELEN4, VeriBol2() AS KALANSP4
, T_Veriler.TERMİN5, VeriBol2(1,TERMİN5) AS GELEN5, VeriBol2() AS KALANSP5
, T_Veriler.TERMİN6, VeriBol2(1,TERMİN6) AS GELEN6, VeriBol2() AS KALANSP6
, T_Veriler.TERMİN7, VeriBol2(1,TERMİN7) AS GELEN7, VeriBol2() AS KALANSP7
, T_Veriler.TERMİN8, VeriBol2(1,TERMİN8) AS GELEN8, VeriBol2() AS KALANSP8
, T_Veriler.TERMİN9, VeriBol2(1,TERMİN9) AS GELEN9, VeriBol2() AS KALANSP9
, T_Veriler.TERMİN10, VeriBol2(1,TERMİN10) AS GELEN10, VeriBol2() AS KALANSP10
, T_Veriler.TERMİN11, VeriBol2(1,TERMİN11) AS GELEN11, VeriBol2() AS KALANSP11
, T_Veriler.TERMİN12, VeriBol2(1,TERMİN12) AS GELEN12, VeriBol2() AS KALANSP12
FROM T_Veriler
ORDER BY T_Veriler.STOK;
Teşekkür ederim hocam sen ne iyi insansın sağolasın.
Rica ederim
İyi çalışmalar )
İyi çalışmalar )
Konuyu Okuyanlar: 1 Ziyaretçi