![]() |
|
تقسيم التلاميذ على المهن؟ - نسخة قابلة للطباعة +- delphi4arab منتديات دلفي للعرب (https://delphi4arab.net/forum) +-- قسم : منتديات دلفي للعرب التعليمية (https://delphi4arab.net/forum/forumdisplay.php?fid=3) +--- قسم : سؤال و جواب حول دلفي (https://delphi4arab.net/forum/forumdisplay.php?fid=15) +--- الموضوع : تقسيم التلاميذ على المهن؟ (/showthread.php?tid=10624) الصفحات:
1
2
|
RE: تقسيم التلاميذ على المهن؟ - ALG2009 - 22-02-2020 قمت بالتغيير في الكود الذي قدمته لي وإستغنيت على الجدول Job للحساب بالنسب ولكن جملة الإستعلام داخل First تسببت في عدم تنفيذ الإستعلام ولم أتأكد من صحه النتيجة أتمنى تصحيح الكود كود : /*doctors*/
select * from
(
select first (select cast(((count(*)/3)+0.9)as integer) from student)
s.student_name from student s
order by s.student_test_result desc
)
union all
/*teachers*/
select * from
(
select first (select cast(((count(*)/3)+0.5)as integer) from student)
skip ((select cast(((count(*)/3)+0.9)as integer) from student))
s.student_name , 'Teacher' job_name
from student s
order by s.student_test_result desc
)
union all
/*engineers*/
select * from
(
select first (select cast(((count(*)/3))as integer) from student)
skip ((select cast(((count(*)/3)+0.5)as integer) from student ))
s.student_name from student s
order by s.student_test_result desc
)(21-02-2020, 05:17 PM)Lam.Abdeldjalil كتب : هذا سؤال أكاديمي ؟ لا يمكن ان يكون في الواقع كيف أحل مشكلة عدم التنفيذ لأتأكد من أنه يمكن في الواقع أ RE: تقسيم التلاميذ على المهن؟ - Lam.Abdeldjalil - 22-02-2020 قصدي لا يمكن أن تطلب مناصب الشغل بالنسب بل بأعداد ثابته ( إذا كان مثال تعليمي يمكن )بالـ sql يمكن باستعمال round لكن لن تعطيك دائما نتيجة صحيحة حسب الجدول المعطى مثال كود : select round(4*0.35),round(4*0.35),round(4*0.3)
from rdb$database------------------------------------------------------------------ الحل : 1 - إن كان عدد الإحتمالات كبير إستعمل حلك جدول. 2 - إن كان عدد الإحتمالات صغير و ثابت إستعمل مصفوفة سجلات مثال : كود : TJobItem = record
Job_cnt : smallint;
doctors : smallint;
engineers : smallint;
teachers : smallint;
end;كود : jobs : array[1..3] of TJobItem =
(
(Job_cnt : 1; doctors :1; engineers:0; teachers:0 ),
(Job_cnt : 2; doctors :1; engineers:1; teachers:0 ),
(Job_cnt : 3; doctors :2; engineers:1; teachers:0 )
) ;كود : showmessage(jobs[3].doctors.tostring);RE: تقسيم التلاميذ على المهن؟ - ALG2009 - 22-02-2020 بالفعل لا يمكن ![]() جزاك الله خيرا |