تقييم الموضوع :
  • 0 أصوات - بمعدل 0
  • 1
  • 2
  • 3
  • 4
  • 5
اذا ممكن مساعدة في تحويل معادلة في اكسل الى كود sql server
#1
السلام عليكم 

تحياتي للجميع 

اذا ممكن مساعدة في تحويل معادلة في اكسل الى كود sql server
حسب المرفق


الملفات المرفقة
.rar   العلاوة الدورية.rar (الحجم : 16.8 ك ب / التحميلات : 19)
الرد }}}
تم الشكر بواسطة:
#2
فى البدابة الجدول عبارة عن التالى

الراتب الاساسـي                   :  2290
تاريخ التعيين                      :  1995
تاريخ استحقاق اخر العلـاوة        :  2018
نسبة العـلاوة                      :  0.0125
اجمالي العـلاوة                    :   757.34

الاجمالى عبارة عن التالى
1- نسبة العلاوة وهى القيمة +1 لتصبح [ 1 + 0.0125 ] = 1.0125 .
2- عدد السنوات وهلى هبارة عن [ 2018 - 1995 ] = 23 .
3- قيمة المرتب وهو 2290 .

ليتم عمل المعدلة التالية بهذا الشكل النهائي
((1.0125^23)-1)*2290

هيكون الناتج عبارة عن 757.3421288
سيتم عمل تقريب اقرب رقم عشري 2 ليصبح الناتج 757.34

طيب الشكل الكلى لكود الاستعلام سيكون كالتالى
كود :
SELECT Salary, DateStart, DateEnd, Premium, (round(((val(val(1 + Premium) ^ round(val(DateEnd - DateStart)/(30*12),0) )-1) * Salary), 2)) AS Total FROM Test

مرفق مثال بسيط لقاعدة البيانات
تم عمل قاعدة البيانات بـ Access ستقوم بتطبيق المثال على Sql
بنفس الكود الاستعلام بدون اى اختلاف

تم عمل المثال المرفق بـ Access حتى توضح الفكرة
صورة لشكل الناتج بعد تنفيذ كود الاستعلام


مع العلم ان الجدول الرئيسي يحتوى فقط على كل من اول 4 اعمدة فقط

تحياتى لك
وتمنياتى لك التوفيق


الملفات المرفقة
.zip   Database.zip (الحجم : 25.24 ك ب / التحميلات : 22)
{ وَقُل رَّبِّ زِدْنِي عِلْمًا }
[ كن على يقين من اعمالنا نخطئ ومن اخطائنا نتعلم ولذلك لا شي مستحيل ]

ساهم دائماً فى    لكل من يقوم بالمساهمة
فى حل المشكلة او الاستفسار لديك فالجميع هنا يعمل 
على مساعدة الاخرين لوجه الله وان تحتسب له اجر عند الله


 شرح كيفية عمل قاعدة بيانات تعمل على اكثر من جهاز على الشبكة الداخلية
الرد }}}
تم الشكر بواسطة: sendbad100 , sendbad100 , asemshahen5 , اسامه الهرماوي
#3
كلمة شكر قليلة بحقك بارك الله فيك اخي الكريم 


وجزاك الله كل خير

السلام عليكم 

اخي الكريم طبقت الكود على sql server 

اعطاني الخطأ التالية

Msg 195, Level 15, State 10, Line 2

'val' is not a recognized built-in function name.
الرد }}}
تم الشكر بواسطة:
#4
Val هي Function تخص قواعد بيانات MS Access

ولا يوجد ما يقابلها في قواعد بيانات SQL Server
الرد }}}
تم الشكر بواسطة: اسامه الهرماوي
#5
اشكرك اخي [b]عبدالله الدوسري وبارك الله فيك [/b]
الرد }}}
تم الشكر بواسطة:
#6
مرحباً اخى sharawee707

فقط قم بحذف اى كلمة تحت اسم ( الكلمة فقط )
كود :
val

أو قم باستخدام الكود بهذا الشكل
كود :
SELECT Salary, DateStart, DateEnd, Premium, (round(((convert(int,convert(int,1 + Premium) ^ round(convert(int, DateEnd - DateStart)/(30*12),0) )-1) * Salary), 2)) AS Total FROM Test

لا يلزم استخدام كلاً من Val و Convert
كل الامر فقط توضيح فى المثال لتجنب اى خلل فى القيم للمثال
خصوصاً لان الامر بقاعدة بيانات Access قد يقوم باستخدام + كما لو انها &
ليصبح 1+1 = 11 بدلاً من 2 ولهذا تم استخدامه فى المثال فقط

فقط اتبع الخطوات كما تم شرحه فى الاعلى
اذا كنت ستقوم بحذف اى كلمة تحت اسم val
أو انك تقمو باستبدالها بكلمة Convert كما موضح فى الكود كاملاً

واسف لعدم توضح على امل انك ستكون على علم الفرق بين 
Access و Sql Server

تحياتى لك
وتمنياتى لك التوفيق
{ وَقُل رَّبِّ زِدْنِي عِلْمًا }
[ كن على يقين من اعمالنا نخطئ ومن اخطائنا نتعلم ولذلك لا شي مستحيل ]

ساهم دائماً فى    لكل من يقوم بالمساهمة
فى حل المشكلة او الاستفسار لديك فالجميع هنا يعمل 
على مساعدة الاخرين لوجه الله وان تحتسب له اجر عند الله


 شرح كيفية عمل قاعدة بيانات تعمل على اكثر من جهاز على الشبكة الداخلية
الرد }}}
تم الشكر بواسطة: sendbad100
#7
بارك الله فيك واشكرك اخي الكريم على هذه المعلومة القيمة 

كل الاحترام التقدير
الرد }}}
تم الشكر بواسطة: elgokr , elgokr , اسامه الهرماوي
#8
الشكر لله والحمد لله
والحمد لله على كل حال

تحياتى لك
وتمنياتى لك التوفيق
{ وَقُل رَّبِّ زِدْنِي عِلْمًا }
[ كن على يقين من اعمالنا نخطئ ومن اخطائنا نتعلم ولذلك لا شي مستحيل ]

ساهم دائماً فى    لكل من يقوم بالمساهمة
فى حل المشكلة او الاستفسار لديك فالجميع هنا يعمل 
على مساعدة الاخرين لوجه الله وان تحتسب له اجر عند الله


 شرح كيفية عمل قاعدة بيانات تعمل على اكثر من جهاز على الشبكة الداخلية
الرد }}}
#9
السلام عليكم 

اخي الكريم بعد تجربة المثال لا تظهر النتائج الصحيحة في sql server بعكس الاكسيس

الرد }}}
تم الشكر بواسطة:
#10
جرب هذا


قم بإنشاء دالة Function داخل SqlServer بإسم GetPremiumTotal
كود :
CREATE FUNCTION dbo.GetPremiumTotal(
    @salary    float,
    @dateStart date,
    @dateEnd   date,
    @premium   float)
RETURNS float
AS
BEGIN

   DECLARE @yearFrac float;  
   SET @yearFrac = DATEDIFF(d, @dateStart, @dateEnd) / 365 ;

   DECLARE @premiumTotal float;  
   SET @premiumTotal = ROUND( ((POWER( (1+ @premium), @yearFrac ) -1) * @salary), 2, 1) ;
    
   RETURN @premiumTotal;

END

ويتم استخدام الدالة GetPremiumTotal بالطريقة التالية
كود :
SELECT  GetPremiumTotal(Salary, DateStart, DateEnd, Premium) AS PremiumTotal
FROM    Employees
الرد }}}


المواضيع المحتمل أن تكون متشابهة .
الموضوع : الكاتب الردود : المشاهدات : آخر رد
  جديد: دمج عمودين من جدولين في عمود واحد في استعلام SQL server ggtt17121985 0 692 09-03-23, 01:17 AM
آخر رد: ggtt17121985
  [VB.NET] مساعدة في خطأ 0 144 10-02-23, 03:09 PM
آخر رد: kebboud
  مساعدة في خطأ 0 124 10-02-23, 02:57 PM
آخر رد: kebboud
  مساعدة في خطأ 0 128 10-02-23, 02:56 PM
آخر رد: kebboud
  [SQL] مساعد فى تحويل بعض معادلات الاكسل الى Sql وخصوصا قاعدة If moooss 0 725 23-10-22, 07:12 PM
آخر رد: moooss
  [SQL] فيديو بسيط يوضح اساسيت التعامل مه sql server tarek 2 2,221 19-06-22, 03:04 AM
آخر رد: أبو خالد الشكري
Sad حلل لمشكلة الsql server واللغه العربيه ارجوكم Hosam Ashraf Elwakel 0 933 13-12-21, 07:01 AM
آخر رد: Hosam Ashraf Elwakel
  مشكلة فى الداتا بيز sql server خبراء منتدانا ارجوا المساعدة shady_0777 0 1,188 14-05-21, 01:31 AM
آخر رد: shady_0777
  [سؤال] طريقة تحديث جدول بناء على بيانات جدول آخر sql server اليوم مبتدئة وغداً محترفة 5 4,889 23-04-21, 07:44 AM
آخر رد: d3vc0d
  اريد ربط 3 جداول (relation ship) فى sql server سلام و محبه 0 1,244 23-01-21, 08:09 PM
آخر رد: سلام و محبه

التنقل السريع :


يقوم بقرائة الموضوع: بالاضافة الى ( 1 ) ضيف كريم