الانتقال إلى المحتوى

تقرير بأعلى خمس علامات طلاب في كل كلية


KhalidOCP

Recommended Posts

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


Select A.Academic_year , A.academic_sem , A.fac_code , A.degree_code , A.dept_code , A.spec_type ,
A.spec_code , A.std_no , A.tot_avg, A.study_period , A.nat_code , A.grantor_code
FROM (select ass.academic_year , ass.academic_sem , ass.fac_code , ass.degree_code , ass.dept_code ,
ass.spec_type , ass.spec_code , ass.std_no , ass.tot_avg , sai.study_period , spi.nat_code , sfi.grantor_code
from academic_semester_summary ass,
students_pers_info spi,
students_academic_info sai,
students_fin_info sfi
where ass.std_no = spi.std_no
and spi.std_no = sai.std_no
and sai.std_no = sfi.std_no
and ass.academic_year = _academic_year
and ass.academic_sem = _academic_sem
and ass.fac_code = decode(_fac_code,null,ass.fac_code,_fac_code)
and ass.degree_code = decode(_degree_code,null,ass.degree_code,_degree_code)
and ass.dept_code = decode(_dept_code,null,ass.dept_code,_dept_code)
and ass.spec_type = decode(_spec_type,null,ass.spec_type,_spec_type)
and ass.spec_code = decode(_spec_code,null,ass.spec_code,_spec_code)
and sai.study_period = decode(_study_period,null,sai.study_period,_study_period)
and spi.nat_code = decode(_nat_code,null,spi.nat_code,_nat_code)
group by ass.academic_year , ass.academic_sem , ass.fac_code , ass.degree_code , ass.dept_code ,
ass.spec_type , ass.spec_code , ass.std_no , ass.tot_avg , sai.study_period , spi.nat_code , sfi.grantor_code

Order by Ass.Tot_avg DESC) A
Where a.academic_year = _academic_year
and a.academic_sem = _academic_sem
and a.fac_code = decode(_fac_code,null,a.fac_code,_fac_code)
and a.degree_code = decode(_degree_code,null,a.degree_code,_degree_code)
and a.dept_code = decode(_dept_code,null,a.dept_code,_dept_code)
and a.spec_type = decode(_spec_type,null,a.spec_type,_spec_type)
and a.spec_code = decode(_spec_code,null,a.spec_code,_spec_code)
and a.study_period = decode(_study_period,null,a.study_period,_study_period)
and a.nat_code = decode(_nat_code,null,a.nat_code,_nat_code)
and Rownum <= _count
[sql]
ومن ثم اعمل query اخرى لعمل ال grouping , ارفق التقرير هنا مع العلم ان التقرير يكرر ال data لكل group .

Awael.Rdf

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

الاخ العزيز
يوجد داله اسمها rownum تستخدم للحصول على اكثر عدد تحددة انت من مجموعه
المثال التالى
select rownum ename,sal
from (select ename,sale,from emp
order by sal desc)
where rownu<=3;
الاستعلام السابق للحصول على كبر ثلالث موظفين يتقاضو مرتبات

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

  • بعد 3 شهور...

يا سيدي يا ذا الشهامة

اكتب جملة ال select في التقرير رتب الجملة تنازلي فقط
افتح خصائص ال group من خصائص ال group يوجد خاصية plsql fillter هذه الخاصية تمكنك من اخذ اول عدد من السجلات او اخر عدد من السجلات او حسب شرط معين انت اختار اول خمس سجلات .

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

انضم إلى المناقشة

يمكنك المشاركة الآن والتسجيل لاحقاً. إذا كان لديك حساب, سجل دخولك الآن لتقوم بالمشاركة من خلال حسابك.

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

×   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

×   تمت استعادة المحتوى السابق الخاص بك.   مسح المحرر

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

جاري التحميل
×
×
  • أضف...

برجاء الإنتباه

بإستخدامك للموقع فأنت تتعهد بالموافقة على هذه البنود: سياسة الخصوصية