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

مشكلة في كتابة الprocedure

مغلق
بدأه maas في 9 أبريل 2006 · 3 رد · 559 مشاهدة · في قواعد بيانات Oracle
مشاركة: واتساب X فيسبوك تيليجرام
#1 صاحب الموضوع

السلام عليكم

يا شباب عندي مشكلة في كتابة الProcedure

و طريقة ال Procedure انه يقوم بحسابة الgpa من 4 لأربع مواد

و عندي انه 3 tables

,course,courseenroll,student

في الcourseenroll عندي Coursename,Grade,Studentid,marks,GPA

و هذا الProcedure و مب عارف كيفية حساب الgpa و طباعته

create or replace procedure calculategpa (marks In number) is
cursor xx is
select student.Studentname,student.Studentid,course.Courseid,course.Coursename, courseenroll.Grade,count(courseenroll.Marks)
from  student,course,courseenroll 
Where  student.studentid=courseenroll.studentid
            And
            Course.courseid=courseenroll.courseid;
yy xx%ROWTYPE;
begin
for yy in xx loop
 dbms_output.put_line(yy.studentid|| '   '||yy.studentname||'got'|| grade (yy.marks) || 'in' || yy.coursename);

update table courseenroll
	set GPA = calculategpa(yy.marks In number)
	where yy.studentid=courseenroll.studentid and yy.courseid= courseenroll.courseid;
end loop;
Commit;
end;

تم تعديل هذه المشاركة بواسطة maas في 9 أبريل 2006 في 19:06

#2

أخي الخطأ موجود في عبارة sql .. لا يمكنك استخدام دالة تجميع في سجلات متعددة بدون أن تستعمل group by ...

#3

ممكن أخوي توضح أكثر

#4

لا يمكن استخدام count أو average في الاستعلامات التي تحضر إضافة إليه حقولاً أخرى دون أن تخضع هذه الحقول لعملية group by كمثال

select name , count(num) from sometable;

خاطئة ... و تصحيحها هو :

 
select name , count(num) from sometable
group by name;

صحيحة

هذا الموضوع مغلق.

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