الفريق العربي للبرمجةأرشيف المنتديات · 2000 – 2023
نسخة أرشيفية للقراءة فقط — التسجيل والمشاركة مغلقان، والمحتوى محفوظ كما كان.

استجلاب افضل مجاميع للطلاب

بدأه الحلفاوي في 3 أغسطس 2013 · 1 رد · 579 مشاهدة · في قواعد بيانات Microsoft SQL Server
مشاركة: واتساب X فيسبوك تيليجرام
#1 صاحب الموضوع

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

 

رمضان كريم وقد شارفنا نهاياته نسال الله ان يجعلنا ممن قُسم لهم فيه باكبر واوفر الحظ والنصيب

 

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

SELECT distinct ID,St_level,Class_label,Stud_name,Level_name,ClassLabel_name,Digree_summation,Term_name FROM
  (SELECT * , ROW_NUMBER() OVER (PARTITION BY st_level,Class_label ORDER BY st_level, Digree_summation desc) AS rank
   FROM Result_set) T
WHERE rank <= 4                            -- @RecordCount
       and term_time     = 1               -- @term_time
       and exam_time     = @exam_time 
       and exam_type     = 1 
       and Year_name_ID  = @Year_name_ID
--       and Subject       = 0
       and St_level     <= 1 
ORDER BY St_level,Class_label,Digree_summation desc

تلميحات :

ID = رقم الطالب

St_level = المستوى

Class_label = اسم الفصل

Digree_summation = مجموع الطالب

Year_name_ID = معرف العام الدراسي

 

الآن لدي في المستوى الواحد 4 فصول وبرغم ان الامر يعمل جيداً في استجلاب المعلومة المطلوبة الا انه يرجع افضل 3 مجاميع لثلاث فصول فقط فما التعديل المناسب

صراحة لست خبيراً في استخدام دالة الـRow_Number علماً بأنني استخدمت عدة محاولات على غير هدى ولكن من خلال هذ السؤال اريد اتقان استخدام هذه الدالة كاتقاننا للاوامر التقليدية للسيكوال دون ان ننتظر ناتج الاستعلام في بعض الاحيان وهذا ما اريده بالضبط

ودمتم اعزائي

 

#2

وهذا ملحق للسؤال نفسه بس على مستوى الدرجات لمحرزة للمادة .......... هذا الامر يستجلب افضل الدرجات المحرزة نعم ولكن دون الالتزام بأفضل 10 درجات


SELECT ID,St_level,Class_label,Stud_name,Level_name,ClassLabel_name,Subject_digree,Term_name,subject_name,subject FROM

  (SELECT * , ROW_NUMBER() OVER (PARTITION BY subject ORDER BY  Subject_digree desc) AS rank

   FROM Result_set) T

WHERE rank <= 10                            -- @RecordCount

       and term_time     = 1               -- @term_time

       and exam_time     = @In_exam_time 

       and exam_type     = 1 

       and Year_name_ID  = @In_Year_name

--       and Subject       = 0

       and St_level      = @In_Class_ID 

ORDER BY subject

post-222450-0-02146700-1375523497_thumb.

مواضيع مشابهة