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

مساعده في زيادة الراتب


هيرودس

Recommended Posts

Declare
V_Deptno number := &Dno;
V_Comm V_Deptno%Type;
Valid_Dept Boolean := True;
Begin
If V_Deptno = 10 Then V_Comm := 2000;
ElsIf V_Deptno = 20 Then V_Comm := 2500;
ElsIf V_Deptno = 30 Then V_Comm := 3000;
ElsIf V_Deptno = 40 Then V_Comm := 3500;
Else Valid_Dept := False;
End If;

IF Valid_Dept Then
	Update Emp
	Set comm = V_Comm
	Where Deptno = V_Deptno;
Else
	Dbms_Output.Put_Line('Invalid Department Number');
End If;
End;
/


----------------------------
ارجو التعديل على الكود السابق لزيادة 10% للموظفين اللي في الدائره 10 وزيادة 20% للموظفين اللي في الدائره20 الى اخره
يعطيكم العافيه ضروري

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

Declare
       V_Deptno number := &Dno;
       V_Comm V_Deptno%Type;
       Valid_Dept  NUMBER(1);

CURSOR DEPT_VALID IS
SELECT COUNT(1)
FROM DEPT_TABLE
WHERE DEPT_NO= V_Deptno;
Begin
OPEN DEPT_VALID;
FETCH DEPT_VALID INTO Valid_Dept; 
CLOSE Valid_Dept;

SELECT DECODE (V_Deptno,10,2000,20,2500,30,3000,40,3500) INTO V_Comm
FROM DUAL; 

       IF NVL(Valid_Dept,0)>0 Then
               Update Emp
               Set comm = V_Comm
               Where Deptno = V_Deptno;
       ElsIF NVL(Valid_Dept,0)=0 Then
               Dbms_Output.Put_Line('Invalid Department Number');
       End If;
End;
/



والله ولي التوفيق ,,

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

هذا مافهمته منك

في حالة انك تريد زيادة راتب كل موظف بنسبة من راتبه اليك الطريقة


Declare
       V_Deptno number := &Dno;
       V_Comm  NUMBER(15,2);
       Valid_Dept  NUMBER(1);

CURSOR DEPT_VALID IS
SELECT COUNT(1)
FROM DEPT_TABLE
WHERE DEPT_NO= V_Deptno;
Begin
OPEN DEPT_VALID;
FETCH DEPT_VALID INTO Valid_Dept; 
CLOSE Valid_Dept;

SELECT DECODE (V_Deptno,10,0.1,20,0.2,30,0.3,40,0.4) INTO V_Comm
FROM DUAL; 

       IF NVL(Valid_Dept,0)>0 Then
               Update Emp
               Set SAL = SAL*(V_COMM+1)
,COMM=V_COMM
               Where Deptno = V_Deptno;
       ElsIF NVL(Valid_Dept,0)=0 Then
               MESSAGE('Invalid Department Number');
MESSAGE('Invalid Department Number');
       End If;
End;
/



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

اخوي زيادة كل دائره
10--اليها 10%
20--اليها 20%
30--البها30%
40 اليها 40%
رحم الله والديك
يعني اللي في الدائره 10 اليهم زيادة في الراتب 10% كلهم
وااللي في الدائره 20 الموضفين اللي فيها 20% زيادة في رواتبهم

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


قصدي salary



الكود الثاني ينفذ ماطلبته
انه سوف يزيد راتب كل واد في الادارة رقم عشرة مثلا ب 10% (0.1)من راتبه تم تعديل بواسطة AFM.DBA
رابط هذا التعليق
شارك

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

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

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

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

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

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

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