اذهب الي المحتوي
أوفيسنا

ايجاد فرق المبلغ بين سجلين


إذهب إلى أفضل إجابة Solved by Shivan Rekany,

الردود الموصى بها

  • أفضل إجابة

كن معي

اولا اليك صورة ولا تحكي مع نفسك كن معي :wink2:

1111.PNG.2f30190291a7cc18663b4964bb74ad59.PNG

النتيجة هو حقل dd

1 / الفرق بين سجل الاول مع الاول اللي ليس موجود هو 2000 لانه ما في اي سجل قبله وقيمته صار صفر 2000 - 0 = 2000

2/ الفرق بين سجل 2000 مع سالب 500 اي 2000 - (-500) = 2500

3/ الفرق بين سالب (-500) و 5000 اي (500-) - 5000 = 5500

4/ الفرق بين 5000 و 6000 اي 5000 - 6000 = -1000 لكن انا استخدمت دالة اي بي اس Abs لكي يعطي نتيجة موجبة

5/ الفرق بين 6000 و 7000 هو سالب 1000

6 / الفرق بين 7000 و 9000 هو 2000

اولا انا استخدمت هذا لكي احصل على السجلات الفردي والمزدوج

واغير رقم السجلات المزدوجة الى سالب

d1: IIf([id] Mod 2;-[num];[num])

وبعدين استخدمت هذا لكي احصل على النتيجة

dd: Abs(DSum("[d1]";"استعلام1";"[id] <=" & [id] & "and [id] >=" & [id]-1))

وهناك ملاحظة : يجب ان يكون ترقيم متسلسل لكي يوصل الى المطلوب اي لا يجوز هناك رقم محذوف في سجل

اليك ملفك بعد تعديل

 

 

test130 (1).rar

تم تعديل بواسطه Shivan Rekany
  • Like 3
رابط هذا التعليق
شارك

اخي الحبيب @محمد احمد لطفى

السلام عليكم ورحمة الله وبركاته

في هذا الموضوع اذا وصلت للمطلوب اعمل علامة صح امام الجواب الافضل

وبالنسبة سؤالك داتاديف نعم هو للفرق بين تاريخين بالايام او شهر او سنة او اسبوع او ساعة او دقائق لو ثواني

لكن ابحث في المنادى راح تشوف مطلبك

تقبل تحياتي

  • Like 1
رابط هذا التعليق
شارك

  • 3 weeks later...

اعتذر لحضرتك كيف يمكن اذا كان السجل الاول 

500

و السجل الثانى 

1000

أن يكزن النتيجة تظهر بالسالب 
-500
و ليس بالموجب 
وجزاك الله خيرا

رابط هذا التعليق
شارك

الان, محمد احمد لطفى said:

اعتذر لحضرتك كيف يمكن اذا كان السجل الاول 

500

و السجل الثانى 

1000

أن يكزن النتيجة تظهر بالسالب 
-500
و ليس بالموجب 
وجزاك الله خيرا

من هذه المعادلة

dd: Abs(DSum("[d1]";"استعلام1";"[id] <=" & [id] & "and [id] >=" & [id]-1))

احذف اي بي اس 

اي سيكون الكود كالتالي

dd: DSum("[d1]";"استعلام1";"[id] <=" & [id] & "and [id] >=" & [id]-1)

والله يعلم

  • Like 1
رابط هذا التعليق
شارك

الان, محمد احمد لطفى said:

لقد وجدت مثالا للأستاذة زهرة عمل جيداً 

عمل رائع من استاذة رائعة :smile:

هي عملت اضافة حقل جديد هكذا

d1: DLookUp("[num]";"استعلام1";"[id]=" & [id]-1)

وبعدين في حقل اخر عملت هذا

Expr1: Nz([num]-[d1];0)

شيء ممتاز جدا

لكن بعد ما نخلص من هذه الملاحظة

في ٢٣‏/٥‏/٢٠١٧ at 19:42, Shivan Rekany said:

وهناك ملاحظة : يجب ان يكون ترقيم متسلسل لكي يوصل الى المطلوب اي لا يجوز هناك رقم محذوف في سجل

 لذا انا قمت باضافة على مثال استاذتنا المبدعة زهرة عبدالله

 باضافة حقل جديد حقل ترقيم تلقائي جديد في الاستعلام

وهذا هو الحقل

id1: (Select Count (*) FROM [جدول1] as MyNewId
WHERE [MyNewId].[id] <[جدول1].[id])+1

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

والان في النهاية استعلامنا اصبح هكذا

SELECT (Select Count (*) FROM [جدول1] as MyNewId
WHERE [MyNewId].[id] <[جدول1].[id])+1 AS id1, جدول1.num, جدول1.Date, DLookUp("[num]","استعلام1","[id1]=" & [id1]-1) AS d1, Nz([num]-[d1],0) AS Expr1
FROM جدول1;

للتوضيح اكثر

اليك المرفق

 

 

test130 (1) (1).rar

تم تعديل بواسطه Shivan Rekany
  • Like 1
رابط هذا التعليق
شارك

Join the conversation

You can post now and register later. If you have an account, sign in now to post with your account.

زائر
اضف رد علي هذا الموضوع....

×   Pasted as rich text.   Paste as plain text instead

  Only 75 emoji are allowed.

×   Your link has been automatically embedded.   Display as a link instead

×   Your previous content has been restored.   Clear editor

×   You cannot paste images directly. Upload or insert images from URL.

  • تصفح هذا الموضوع مؤخراً   0 اعضاء متواجدين الان

    • لايوجد اعضاء مسجلون يتصفحون هذه الصفحه
×
×
  • اضف...

Important Information