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

مساعدة في انشاء استعلام


Ali Tawfeek

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

السلام عليكم 

 

لدى ملف المرفق يحتوى على اسماء و لكل اسم رقم تعريقي لا يتكرر تحت اسم اخر و لكن يتكرر اذا تكرر نفس الاسم و لكل اسم رقم فرعي 

 

ما اريدة في الاستعلام : انشاء الاتي 

 

اولا : انشاء متوسط للارصدة لكل صف بحيث يتم تجاهل الارقام السوالب او بمعني ادق تعتبر كانها صفر 

ثانيا : في حالة وجود اسم لة اكثر من رقم تعريفي فيتم اختيار اسم واحد فقط بناء على اختيار افضلية للرقم الفرعي 2

ثالثا : في حالة اذا كان نفس الاسم اللى فى ثانيا يحتوى على اكثر من رقم فرعي 2 فيتم اختيار المتوسط الاكبر 

 

يعني لو حبنا نطبق السابق

 

اولا سوف تطبق على رقم تعريفي 107 حيث تم اعتبار المتوسط 1 بدل من 0.5 لاننا اعتبارنا -1 بالصفر

بالنسبة الى الطلب ثانيا و ثالثا فاذا نظرنا الى رقم تعريفي 104 فسيتم تفضيل رقم 2و من ثم يتم فصل المتوسط الاكبر و هو 25

 

رقم تعريفي الاسم فرعي رصيد 1 رصيد 2 متوسط 101 احمد 1 0 0 0 101 احمد 1 15 25 20 101 احمد 1 0 5 2.5 101 احمد 2 23 27 25 102 اشرف 2 1 2 1.5 102 اشرف 2 25 25 25 103 ايمن 2 1 2 1.5 104 رامز 1 18 12 15 104 رامز 1 28 22 25 104 رامز 2 28 22 25 104 رامز 2 18 12 15 107 عادل 1 -1 2 1 107 عادل 1 1 0 0.5

 

عذرا للاطالة 

New.rar

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

 

هذا السؤال صعب بصراحة ^_^

جرب البحث في المنتدى

 

شكرا لك بس هل من توضيح هل تعني ان المنتدى به الاجابة علي سؤالي ؟ لانى بحثت قبل طرح السؤال 

 

هذا ما اردت جرب تغير صيغة ومفردات البحث واستخدم مربع البحث مع جوجل لأنه اشمل..

وفقك الله

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

وعليكم السلام أخي علي  :smile:

 

للأسف سؤالك غير واضح :eek2: 

رجاء تعمل اكثر من مثال في الاكسل او الوورد (مثلا الرقم التعريفي 107 ، فيه رقمين ، كيف تريدنا نتعامل معاهم) ، 

ورجاء اعطاء ادق التفاصيل ، حتى نعرف المطلوب بالضبط  :smile:

 

 

 

جعفر

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

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

 

File.rar

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

اخي علي فتحي

وبعد اذن الاخوة والاساتذة

حبذا ان تشرح تريد ان تصل في الأصل الى اين ؟ اقصد انت تريد ان تحسب ماذا ؟ كان تقول مثلا : لدي عملاء او موردين وأرقام فواتير وعند كل عمل فاتورة يتم ترصيد رصيد العميل  او المورد ؟ او كان تقول اريد المتوسط المرجح لمجموعة ارصدة ؟ نريد شرح فكرتك التي تريد تنفيذها !!

 

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

 

تحياتي

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

اخي رمهان كل الشكر لردك 

 

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

 

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

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

عزيزي علي فتحي

وبعد اذن الاستاذ جعفر على المداخلة محاولة لحفظ جزء من وقته !

وكذلك اخي راعي الغنم استأذنه ولعل له به فائدة !

 

اعمل استعلام ومصدره الجملة التالية واحفظه باسم qr1 :

SELECT Record_OLD.[رقم تعريفي], Record_OLD.الاسم, Max(Record_OLD.فرعي) AS Maxمنفرعي, Max((IIf([رصيد 1]<0,0,[رصيد 1])+IIf([رصيد 2]<0,0,[رصيد 2]))/2) AS expr1
FROM Record_OLD
GROUP BY Record_OLD.[رقم تعريفي], Record_OLD.الاسم;

واستعلام ثاني ومصدره الجملة التالية واحفظه باسم qr2 :

SELECT Record_OLD.[رقم تعريفي], Record_OLD.الاسم, Record_OLD.فرعي, Record_OLD.[رصيد 1], Record_OLD.[رصيد 2], (IIf([رصيد 1]<0,0,[رصيد 1])+IIf([رصيد 2]<0,0,[رصيد 2]))/2 AS المتوسط
FROM Record_OLD;

واستعلام ثالث واحفظه باسم qr3 حيث هو المطلوب :

SELECT [qr2].[رقم تعريفي], [qr2].الاسم, [qr2].فرعي, [qr2].[رصيد 1], [qr2].[رصيد 2], qr2.[المتوسط]
FROM qr2 INNER JOIN qr1 ON (qr2.[المتوسط]=qr1.expr1) AND ([qr2].فرعي=[qr1].Maxمنفرعي) AND ([qr2].الاسم=[qr1].الاسم) AND ([qr2].[رقم تعريفي]=[qr1].[رقم تعريفي]);

هذا متمنيا ان يكون المطلوب !!

 

تحياتي

تم تعديل بواسطه رمهان
  • Like 2
رابط هذا التعليق
شارك

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

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

عزيزي علي فتحي

وبعد اذن الاستاذ جعفر على المداخلة محاولة لحفظ جزء من وقته !

وكذلك اخي راعي الغنم استأذنه ولعل له به فائدة !

 

اعمل استعلام ومصدره الجملة التالية واحفظه باسم qr1 :

SELECT Record_OLD.[رقم تعريفي], Record_OLD.الاسم, Max(Record_OLD.فرعي) AS Maxمنفرعي, Max((IIf([رصيد 1]<0,0,[رصيد 1])+IIf([رصيد 2]<0,0,[رصيد 2]))/2) AS expr1
FROM Record_OLD
GROUP BY Record_OLD.[رقم تعريفي], Record_OLD.الاسم;

واستعلام ثاني ومصدره الجملة التالية واحفظه باسم qr2 :

SELECT Record_OLD.[رقم تعريفي], Record_OLD.الاسم, Record_OLD.فرعي, Record_OLD.[رصيد 1], Record_OLD.[رصيد 2], (IIf([رصيد 1]<0,0,[رصيد 1])+IIf([رصيد 2]<0,0,[رصيد 2]))/2 AS المتوسط
FROM Record_OLD;

واستعلام ثالث واحفظه باسم qr3 حيث هو المطلوب :

SELECT [qr2].[رقم تعريفي], [qr2].الاسم, [qr2].فرعي, [qr2].[رصيد 1], [qr2].[رصيد 2], qr2.[المتوسط]
FROM qr2 INNER JOIN qr1 ON (qr2.[المتوسط]=qr1.expr1) AND ([qr2].فرعي=[qr1].Maxمنفرعي) AND ([qr2].الاسم=[qr1].الاسم) AND ([qr2].[رقم تعريفي]=[qr1].[رقم تعريفي]);

هذا متمنيا ان يكون المطلوب !!

 

تحياتي

 

 

ول ول ول ، هالكثر الموضوع معقد  :eek2:

رحم الله والديك أخوي رمهان ، رفعت الرايه عنا كلنا  :fff:

 

 

جعفر

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

 

عزيزي علي فتحي

وبعد اذن الاستاذ جعفر على المداخلة محاولة لحفظ جزء من وقته !

وكذلك اخي راعي الغنم استأذنه ولعل له به فائدة !

 

اعمل استعلام ومصدره الجملة التالية واحفظه باسم qr1 :

SELECT Record_OLD.[رقم تعريفي], Record_OLD.الاسم, Max(Record_OLD.فرعي) AS Maxمنفرعي, Max((IIf([رصيد 1]<0,0,[رصيد 1])+IIf([رصيد 2]<0,0,[رصيد 2]))/2) AS expr1
FROM Record_OLD
GROUP BY Record_OLD.[رقم تعريفي], Record_OLD.الاسم;

واستعلام ثاني ومصدره الجملة التالية واحفظه باسم qr2 :

SELECT Record_OLD.[رقم تعريفي], Record_OLD.الاسم, Record_OLD.فرعي, Record_OLD.[رصيد 1], Record_OLD.[رصيد 2], (IIf([رصيد 1]<0,0,[رصيد 1])+IIf([رصيد 2]<0,0,[رصيد 2]))/2 AS المتوسط
FROM Record_OLD;

واستعلام ثالث واحفظه باسم qr3 حيث هو المطلوب :

SELECT [qr2].[رقم تعريفي], [qr2].الاسم, [qr2].فرعي, [qr2].[رصيد 1], [qr2].[رصيد 2], qr2.[المتوسط]
FROM qr2 INNER JOIN qr1 ON (qr2.[المتوسط]=qr1.expr1) AND ([qr2].فرعي=[qr1].Maxمنفرعي) AND ([qr2].الاسم=[qr1].الاسم) AND ([qr2].[رقم تعريفي]=[qr1].[رقم تعريفي]);

هذا متمنيا ان يكون المطلوب !!

 

تحياتي

 

 

ول ول ول ، هالكثر الموضوع معقد  :eek2:

رحم الله والديك أخوي رمهان ، رفعت الرايه عنا كلنا  :fff:

 

 

جعفر

 

 

هناك افكار اخرى اخي جعفر !! ولكنني اخترت هذه الفكرة لان كلها فقط استعلام تجميعي ثم الربط بينهم !! وهي مفهومة للغالب ! فيبدو انني نفذت الاصعب !

هناك فكرة ثلاث استعلامات متداخلة  sub queries !! وهناك اكثر من فكرة خوارزمية بالكود ! 

وجودكم ومشاركتم فيها الخير والبركة ! 

تحياتي

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

شكرا اخي رمهان على مساعدتك بس هل من سؤال لتاكيد فهمي اذا كان صحيح ام لا 

 

انت شكلت الاستعلام الاول على فكرة انك تصفي اعلي كود حساب فرعي في اول عمود و في تاني عمود على انك تصفي اعلي متوسط و ذلك بغض النظر اذا كان العمودين مرتبطين ام لا يعني بمعني ادق ممكن الممكن ان متوسط يرتبط بحساب فرعي و الكود الفرعي الاعلي يرتبط بحساب اخر 

 

و بالنسبة الى الاستعلام الثاني انت عملت مجرد استعلام على الملف بالكامل بحيث تظهر المتوسط لكل الحسابات المتواجدة 

 

و الاستعلام الثالث الخاص بالربط على اساس هو ان المتوسط المتشابة اللى في الاستعلام الاول و الثاني هيظهر كود الحساب الاعلي 

 

اذا كان فهمي صحيح فدة هيظهر لى مشكلة كالتالي

 

الاولي : اننا اعتمادنا على تصفية الحساب الفرعي على فكرة الاكبر يعني مجرد ترتيب ابجدى او رقمي رغم المراد او اللى كان مطلوب هو مجرد اولوية و ليس الاكبر بمعني ادق ممكن الاكودا عندى تكون رموز و المطلوب هو مجرد تفضيل رمز عن الاخر في حالة وجد رمزين 

 

الثانية : مرفق لك نفس المثال السابق و لكن تم تعديل ارصدة رامز بحساب فرعي رقم 1 بحيث ان متوسط سيصبح 50 و بذلك المفروض المورد رامز هيكون عندة متوسط لحسابين 

الاول ذات كود 1 متوسط رصيدة هيكون 50 و الثاني ذات كود 2 متوسط رصيدة هيكون 25 لذلك هنلاقي الملف السابق لم يظهر رامز في الاستعلام الثالث 

 

لذلك ما ينقصني التعديل هو كيفية تفضيل الحساب الفرعي يعني كيف يكون متغير بمعني ادق اذا افترضت ان الافضلية للحساب فرعي 1 يبقي استعلام 3 المفروض يظهر رامز برصيد 50 و يتجاهل الباقي ام اذا افترضت ان الافضلية لحساب فرعي رقم 2 يبقي استعلام 3 المفروض يظهر رامز برصيد 25  و يتجاهل الباقي و هكذا 

New.rar

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

اخي عل فتحي

اسف عالتاخير !!

جرب لعلني فهمت المقصود ! او اكتب الملاحظات لتقريب الفهم !!

 

بالتوفيق

New-last.rar

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

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