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

  • تسجيل الدخول عبر الفيس بوك تسجيل الدخول عبر تويتر Log In with LinkedIn Log In with Google      تسجيل دخول    
  • إنشاء حساب

صورة
- - - - -

اريد اضفة اضافة * لكل 100 من الراتب (صحح الكود)


2 رد (ردود) على هذا الموضوع

#1 ab0_s3d

ab0_s3d

    مشترك

  • الأعضــاء
  • 66 مشاركة

تاريخ المشاركة 19 May 2005 - 05:56 PM

السلام عليكم ورحمة الله وبركاته
انشأة عمود في جدول ال emp باسم stars و اريد
ان اضيف * في العمود stars لكل 100 من راتب الموظف.
لنفرض ان الموظف راتبه 1000 هذا يعني انه سيحصل على * * * * * * * * * *

حاولت كتابة الكود وتوصلت الى الكود التالي لا كنه اضاف ال * لكل الموظفين على حسب راتب اول موظف

فبما ان اول موظف راتبه 800 و يستحق 8 من * فالكود اعطى كل الموظفين 8 من *

اتمنى اني وضحت ما اريد من الكود - و الخطأ الذي وقعت فيه

و اتمنى منكم المساعدة في التصحيح
declare
no emp.empno%type:=&no;
a_sal number(7);
b_sal number(7);
v_sta varchar2(50):=' ';
cursor sal_emp is
select sal
from emp; begin open sal_emp;
fetch sal_emp into a_sal; b_sal:=(a_sal-50)/100;
dbms_output.put_line(b_sal);
for i in 1..b_sal loop
v_sta:=v_sta||'*';
end loop;
dbms_output.put_line(v_sta);
update emp
set stars=v_sta;
close sal_emp;
end;
/


#2 basel_r

basel_r

    عضو

  • الأعضــاء
  • 2 مشاركة

تاريخ المشاركة 19 May 2005 - 09:21 PM

brother see solution


declare
no emp.empno%type;
a_sal number(7);
b_sal number(7);
v_count number:=0;
v_sta varchar2(50):=' ';
cursor sal_emp is
select sal,emp_no
from emp;
begin open sal_emp;
loop
fetch sal_emp ,emp_no into a_saln,no;
b_sal:=(a_sal)/100;
dbms_output.put_line(b_sal);
for i in 1..b_sal loop
v_sta:=v_sta||'*';
end loop;
v_count:=v_count+1;
dbms_output.put_line(v_sta);
update emp
set stars=v_sta
where emp_no=no;
exit when v_count >= sal_emp%rowcount;
end loop;
close sal_emp;
end;
/

#3 ab0_s3d

ab0_s3d

    مشترك

  • الأعضــاء
  • 66 مشاركة

تاريخ المشاركة 20 May 2005 - 08:36 AM

الكود فيه اكثر من خطاء تاكد من صحه الكود الله يعافيك..


اشكرك على المحاولة