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

سؤال عن العمليات الحسابيه


مساعد مبرمج

Recommended Posts

هل يمكن عمل حساب للعمده التي على الجدول

create table f(
f1 number,
f2 number,
f3 number.
tot number,
re varchar2(10);

اريد حساب العمود f1+f2+f3 ويطلع المجموع على عمود tot

وعمود re ابحط فيه شرط اذا كان مجموع الدرجات في ال عامود ال tot 40 ناجح

اما اذا كان 20 راسب

هل يمكن عمل هذا على مستوى الجدول ولا اريده على الفورمه

لاني سوف اربط هذا الجدول بموقع

هل تنفع هذه الطريقه ياليت حد يعطنا الفكره

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

اخوي اخر عمودين لا داعي منهما فانت تستطيع حسابهما من دون ايجاد عمود مخصص للعملية

SQL> insert into tt values (10,10,20);

1 row created.

SQL> insert into tt values (5,5,10);

1 row created.

SQL> select * from tt;

       F1         F2         F3                                                
---------- ---------- ----------                                                
       10         10         20                                                
        5          5         10                                                

SQL> select f1,f2,f3,(f1+f2+f3) sum, case (f1+f2+f3) when 40 then 'Pass' else 'Fail' end  "re" from tt;

       F1         F2         F3        SUM re                                  
---------- ---------- ---------- ---------- ----                                
       10         10         20         40 Pass                                
        5          5         10         20 Fail                                

SQL> spool off;




هاذا اذا كان المجموع عندك محدد يعني يااما يكون 40 او يكون 20

اذا كان قصدك اكبر او اصغر الرجاء التوضيح

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

اخي الكريم سوف اوضحلك مالذي اريد ان افعله

اريد عمل حساب اختبار الشهر الاول + اختبار الشهر الثاني + النهائي

الشهر الاول من 25 والشهر الثاني من 25 = 50

النهائي 50 المجموعه كله 100 درجه
اريد ان احسب الشهر الاول + الشهر الثاني+ النهائي ,عشان يطلع المجموع

وفي الاخر نريد وضع شرط على المجموع يكون لو اخذ 60 الى 100 ناجح
ولو اخذ اقل من 60 يكون راسب

وبالتالي اريد ان اربط هذا الجدول بموقع لكي يعرض هذه البيانات هل هذا ممكن

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

تفضل اخوي


SQL> create table grades
 2  (st_no number primary key,
 3  f1 number,
 4  f2 number,
 5  f3 number);

Table created

.


SQL> insert into grades values (1,20,20,40);

1 row created.

SQL> insert into grades values (2,10,20,20);

1 row created.


SQL> insert into grades values (3,10,15,20);

1 row created.


create or replace function return_status(p_stno number)
return varchar2
is
v_tot number;
begin
select (f1+f2+f3)
into v_tot
from grades
where st_no =p_stno;
if v_tot >= 50 then
return 'PASS';
else
return 'FAIL';
end if;
end;



create view new_grades as
select f1,f2,f3,(f1+f2+f3) sum,return_status(st_no) status
from grades;






[/code]

[/code]

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

الله يجزيك الف خير

لنا رجع ان شالله

----------------

تم عمل الاتي وهذه النتيجه

SQL> select * from grades;

    ST_NO         F1         F2         F3
---------- ---------- ---------- ----------
        1         20         20         40
        2         10         20         20
        3         10         15         20
        4         25         25         50



الطريقه مضبوطه لاكن ناقصها عامود يحسب f1+f2+f3 ويظهر مجموعهم
مثلا رقم اربعه 25+25+50 اريده يكتب 100 فبذالك ننشء عامود ثالث فيه المجموع

ولاكن اين النتيجه pass اريدها ان تظهر امامهم سواء كان PASS او FAIL

ومافائده هذا الامر

create view new_grades as
select f1,f2,f3,(f1+f2+f3) sum,return_status(st_no) status
from grades;

تم تعديل بواسطة مساعد مبرمج
رابط هذا التعليق
شارك

create or replace function return_status(p_stno number)
return varchar2
is
v_tot number;
begin
select (f1+f2+f3)
into v_tot
from grades
where st_no =p_stno;
if v_tot >= 50 then
return 'PASS';
else
return 'FAIL';
end if;
end;




هذا عبارة عن function تقوم بتمرير رقم الطالب وهو يقوم بحساب المجموع والمقارنة اذا كان اكبر من 50 او اصغر ويقوم بارجاع قيمة اعتمادا على المجموع

create view new_grades as
select f1,f2,f3,(f1+f2+f3) sum,return_status(st_no) status
from grades;



هذا الكود يقوم بعمل view لكي تسهل عليك عملية الاستعلام اذا كنت تريدها في تطبيقات ويب

ابني function وبعدها view ثم استعلم من ال view

select * from new_grades



سوف تحصل على النتيجة التي تريدها


ولا تنسانا من الدعاء

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

كلامك صحيح

الان تخطينا هذه المرحله لاكن بقى كيف اسحب هذا الجدول مع الفانكشن لكي اربطها بالموقع

يعني حيبقى ايه امتداد الملف

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

انا حاليا سوف انفذها بال asp.net2

واربطها بجدول الاوركل انا الان ادرس كيفيه اعداد الجداول بالطريقه التي ذكرتها انت وبعدها سوف اربط الاوركل بالفجول ستديو

لاكن لااعرف كيفيه الربط سوف ابحث عن الطريقه واجربها

اذا لديك اي اقتراحه حول الموضوع بمكانك اخباري

وانت الله يجزنا ويجزك الجنه على عملك الصالح لخدمه اخوانك

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

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

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

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

×   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.

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

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

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