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

ترتيب الطلاب رقميا بدون قفز المرتبة التالية عند وجود مكرر


Salem2020
إذهب إلى أفضل إجابة Solved by Barna,

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

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

تجدون في الملف المرفق جدول بسيط  جدا يحمل اسم Table يحتوي على ثلاثة حقول هي حقل الرقم ID وحقل الاسم Name وحقل الدرجة Mark لمجموعة من الطلاب

ارغب بعمل استعلام (كويري) يقوم بترتيب الطلاب رقميا (فقط) وذلك حسب الدرجة أي يكتب أمام أعلى درجة رقم (1) والثاني (2) والثالث (3) وهكذا فقط مع ضرورة عدم تجاوز أي رقم في حال وجود مكرر فمثلا تجد أن الدرجة (86) مكررة مرتين وبذلك يكون هناك طالبين يحملون المرتبة (3) اريد بعد ذلك أن ينتقل الى (4) ولا يتم القفز إلى (5) وهكذا

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

ارجوا مساعدتي في ذلك ولكم فائق الاحترام

 

Students.accdb

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

  • أفضل إجابة
1 ساعه مضت, Salem2020 said:

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

تجدون في الملف المرفق جدول بسيط  جدا يحمل اسم Table يحتوي على ثلاثة حقول هي حقل الرقم ID وحقل الاسم Name وحقل الدرجة Mark لمجموعة من الطلاب

ارغب بعمل استعلام (كويري) يقوم بترتيب الطلاب رقميا (فقط) وذلك حسب الدرجة أي يكتب أمام أعلى درجة رقم (1) والثاني (2) والثالث (3) وهكذا فقط مع ضرورة عدم تجاوز أي رقم في حال وجود مكرر فمثلا تجد أن الدرجة (86) مكررة مرتين وبذلك يكون هناك طالبين يحملون المرتبة (3) اريد بعد ذلك أن ينتقل الى (4) ولا يتم القفز إلى (5) وهكذا

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

ارجوا مساعدتي في ذلك ولكم فائق الاحترام

 

 

تفضل <><><><><><<>

 

Students (3).accdb

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

السلام عليكم 

اشكرك شكرا كثيرا أخي Barna وأبشرك أنني بعد عناء البحث وجدت أخيرا الكويري المطلوب وللفائدة اضعه هنا وكل ما عليك فعله بعد إنشاء الكويري أن تقوم بعرضه في وضع SQL ثم لصق الكود التالي مع تغيير اسم الجدول وحقول الاستعلام بحسب ما هو لديك

اسم الجدول هو Table

حقل الاسم Name

حقل الدرجة Mark

الحقل الاضافي الخاص بالترتيب Rank

SELECT
   T2.Name,
   1 +
   (
      SELECT
         COUNT(*)
      FROM
         (
            SELECT DISTINCT
               Mark
            FROM [TABLE]
               ) AS T1
      WHERE
         T1.Mark > T2.Mark) AS Rank
FROM
   [Table] AS T2
ORDER BY
   T2.Mark DESC

 

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

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