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

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

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


الملفات المرفقة
.rar   العلاوة الدورية.rar (الحجم : 16.8 ك ب / التحميلات : 16)
الرد
تم الشكر بواسطة:
#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 ك ب / التحميلات : 14)
{ وَقُل رَّبِّ زِدْنِي عِلْمًا }
[ كن على يقين من اعمالنا نخطئ ومن اخطائنا نتعلم ولذلك لا شي مستحيل ]

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


 شرح كيفية عمل قاعدة بيانات تعمل على اكثر من جهاز على الشبكة الداخلية
الرد
تم الشكر بواسطة: 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
الرد


المواضيع المحتمل أن تكون متشابهة .
الموضوع : الكاتب الردود : المشاهدات : آخر رد
  اريد ربط 3 جداول (relation ship) فى sql server سلام و محبه 0 15 , 08:09 PM
آخر رد: سلام و محبه
  مساعدة من محترفي SQL SERVER flamengo 1 245 12-10-20, 11:23 AM
آخر رد: flamengo
  هل أستخدم SQL SERVER الموجود ضمن حزمة فيجوال بيسك 2013 أوSQL SERVER كبرنامج مستقل جيولوجي مبتدئ 1 592 29-09-20, 01:07 AM
آخر رد: ابو محمد محمد محمد
  [درس فيديو] دورة حول كيفية ربط كل من الفوكس برو والاكسس بال sql server diggitalk2017@gmail.com 0 286 29-08-20, 11:40 PM
آخر رد: diggitalk2017@gmail.com
  كيفية عرض السجلات المكررة في SQL Server ggtt17121985 0 339 23-08-20, 08:57 PM
آخر رد: ggtt17121985
  نسخه sql server runtime 2014 Hosam Ashraf Elwakel 0 275 23-08-20, 12:46 PM
آخر رد: Hosam Ashraf Elwakel
  [SQL] طلب مساعدة في استعلام تحديث ارصدة المخزون ayaf2020 1 603 13-07-20, 10:08 PM
آخر رد: ayaf2020
  [SQL] كورس احتراف البرمجة vb. Net مع SQL server Rafaat 1 621 05-07-20, 03:47 AM
آخر رد: عبد الهادي بهاب
  تحويل قاعدة بيانات sql server لملف script لامكانية تحويلها لاي نوع قواعد بيانات أخرى ggtt17121985 0 526 05-05-20, 08:47 AM
آخر رد: ggtt17121985
  [سؤال] كيف يمكنني فتح قاعدة بيانات sql server2014 على sql server 2008 عبدالمجيد رفيدة 0 557 29-03-20, 06:32 PM
آخر رد: عبدالمجيد رفيدة

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


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