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

طرح تواريخ عمودى


Omar_Kreem

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

الأساتذة الأفاضل ..

لدى استعلام اسميته (MaxValD) به عمودين من التواريخ لكل موظف وصممتها كالتالى:

ID2    .............. date1 .............. date2

أريد طرح العمود date2 من السجل التالى للعمود date1 بحيث يتم نسخ الناريخين الذين يعطيان أكبر نتيجة لكل موظف فى صف مستقل.

كما فى الصورة المرفقة ..

Presentation1.jpg

DateVal.mdb

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

شكرا استاذ محمد لمتابعتك .

لكن لاحظت انك قد غيرت فى id جتى لا يكون هناك تكرار .. لكن قد يكون للشخص الواحد اكثر من سجل.

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

شكرا د.كاف يار على الرد..

لكن الحل لا يعتمد على أصغر تاريخ وأكبر تاريخ ... فالتواريخ المراد وضعها فى العمود الجديد تمثل أكبر ناتج طرح للتواريخ (أى أن العبرة بقيمة ناتج الطرح فى تحديد التاريخ المراد نقله) كما هو موضح فى اتجاه الاسهم بالصورة المرفقة ولكل موظف على حدى.

Presentation1.jpg.7f68993ce31efceca9a6b1290165589f.jpg

تم تعديل بواسطه omar19-3
خطأ أملائى
رابط هذا التعليق
شارك

13 ساعات مضت, omar19-3 said:

شكرا د.كاف يار على الرد..

لكن الحل لا يعتمد على أصغر تاريخ وأكبر تاريخ ... فالتواريخ المراد وضعها فى العمود الجديد تمثل أكبر ناتج طرح للتواريخ (أى أن العبرة بقيمة ناتج الطرح فى تحديد التاريخ المراد نقله) كما هو موضح فى اتجاه الاسهم بالصورة المرفقة ولكل موظف على حدى.

Presentation1.jpg.7f68993ce31efceca9a6b1290165589f.jpg

ما ذا تقصد بالطرح في التاريخ ؟

(فالتواريخ المراد وضعها فى العمود الجديد تمثل أكبر ناتج طرح للتواريخ)

لو اردت حساب مدة بين تاريخين استخدم التالي

DateDiff(«interval»; «date1»; «date2») 

حيث ان interval

تعبر عن معيار الحساب

مثلا لو اردت حساب عدد الأيام بين تاريخين يكون بالطريقة التالية

DateDiff("D"; [date1]; [date2]) 

و لو اردت حساب عدد الأشهر تكون بالطريقة التالية

DateDiff("M"; [date1]; [date2]) 

و لو اردت حساب عدد السنوات تكون بالطريقة التالية

DateDiff("YYYY"; [date1]; [date2]) 

و لو اردت حساب عدد الأسابيع تكون بالطريقة التالية

DateDiff("WW"; [date1]; [date2]) 

و لو اردت حساب الربع سنوي تكون بالطريقة التالية

DateDiff("Q"; [date1]; [date2]) 

 

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

2 ساعات مضت, د.كاف يار said:

ما ذا تقصد بالطرح في التاريخ ؟

(فالتواريخ المراد وضعها فى العمود الجديد تمثل أكبر ناتج طرح للتواريخ)

أقصد الآتى:

** طرح العمود date2 من العمود date1 (لكل موظف) كما تشير الأسهم بالصورة المرفقة بحيث يتم نسخ الناريخين الذين يعطيان أكبر نتيجة لكل موظف فى عمود جديد (مرفق صورة)... فمثلا:

1-   الموظف رقم (80) ليس له سوى سجلين، فبالتالى لن تكون هناك مقارنات ونأخذ date2  و date1.

2-      الموظف رقم (81) له أربعة سجلات، فيتم الطرح كما تشير الأسهم ونأخذ التاريخين لأكبر ناتج.

3-      الموظف رقم (83)، ورقم (84) لا شيئ لهما..... وهكذا..

Presentation2.jpg

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

أحببت المشاركة مع ما تفضل به مهندسنا الدكتور @د.كاف يار 🙂 

وهذا ما توصلت إليه :

image.png.91bc86b835d9d302651a931af7353bad.png

قمت بإضافة حقل ترقيم تلقائي [Number] في الجدول وذلك لكي تعمل دوال المجال بشكل صحيح 🙂 

العمود الأيسر الأخير يبين لك القيمة الأكبر لكل ID .. وفي بعضها تتكرر القيمة بسبب أن الفرق بين الفترات متشابه.

تحتاج الآن لاستعلام تجميعي يعزل لك السجلات ذات القيمة الأكبر ( لأني ما عرفت كيف أسويه  :biggrin: )

 

DateVal (1).mdb

تم تعديل بواسطه Moosak
رابط هذا التعليق
شارك

وهذه الخلاصة في استعلام نهائي : 🙂 

image.png.b2617c4272b9942e40acffb6738b0510.png

لكنه بطيء حبتين بسبب الدوال المكتوبة في الاستعلام .. ربما يوجد طريقة أسرع لإنجاز المهمة :rol:

DateVal (1).mdb

تم تعديل بواسطه Moosak
رابط هذا التعليق
شارك

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