بتاريخ: 8 يناير 201115 سنة comment_206905 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 الى اخرهيعطيكم العافيه ضروري تم تعديل 8 يناير 201115 سنة بواسطة هيرودس تقديم بلاغ
بتاريخ: 8 يناير 201115 سنة comment_206910 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; / والله ولي التوفيق ,, تقديم بلاغ
بتاريخ: 8 يناير 201115 سنة comment_206913 هذا مافهمته منكفي حالة انك تريد زيادة راتب كل موظف بنسبة من راتبه اليك الطريقة 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; / تقديم بلاغ
بتاريخ: 8 يناير 201115 سنة كاتب الموضوع comment_206915 اخوي زيادة كل دائره 10--اليها 10%20--اليها 20%30--البها30%40 اليها 40%رحم الله والديكيعني اللي في الدائره 10 اليهم زيادة في الراتب 10% كلهموااللي في الدائره 20 الموضفين اللي فيها 20% زيادة في رواتبهم تم تعديل 8 يناير 201115 سنة بواسطة هيرودس تقديم بلاغ
بتاريخ: 8 يناير 201115 سنة comment_206917 قصدي salary الكود الثاني ينفذ ماطلبته انه سوف يزيد راتب كل واد في الادارة رقم عشرة مثلا ب 10% (0.1)من راتبه تم تعديل 8 يناير 201115 سنة بواسطة AFM.DBA تقديم بلاغ
انضم إلى المناقشة
يمكنك المشاركة الآن والتسجيل لاحقاً. إذا كان لديك حساب, سجل دخولك الآن لتقوم بالمشاركة من خلال حسابك.