shosho842000 بتاريخ: 10 فبراير 2010 تقديم بلاغ مشاركة بتاريخ: 10 فبراير 2010 السلام عليكم ورحمته الله وبركاته ازاى اقدر اعمل الجملة دى فى طريقة حساب مرتبات المطلوب الاتى انه فى الاول خالص يعمل if condition على الشهر اذا كان بيساوى شهر 1 يبقى عايزاه جملة select تجيب مجموع الاستحقاقات وهى مثلا sal1,sal2,sal3,sal4,sal4 بناء على شهر 1 لو مش بيساوية يعمل insert into فى جدول salary باستخدام select للبنود دى من الشهر الى فات يعنى لو مش بيساوى عايزاه يجيب مرتبات الشهر الى قبله ويعمل ليها insertinto فى الجدول ياريت الموضوع يكون مفهوم اقتباس رابط هذا التعليق شارك المزيد من خيارات المشاركة
محمد ابوالعلا بتاريخ: 11 فبراير 2010 تقديم بلاغ مشاركة بتاريخ: 11 فبراير 2010 السلام عليكمانا فهمت من كلامك انك عاوز تجيب مجموع اكثر من حقل فى حالة اذا كان شهر 1 اما اذا كان لا يساوى واحد يجيب البيانات بتاعت الشهر السابق ويدرجها جوة جدول تانى BEGIN SELECT TO_CHAR(SYSDATE,'MM') INTO :GLOBAL.SYS FROM DUAL; IF :GLOBAL.SYS= '01' THEN SELECT SUM(NVL(SAL1,0))+SUM(NVL(SAL2,0))+SUM(NVL(SAL3,0))+SUM(NVL(SAL4,0)) INTO :GLOBAL.SUM_SAL FROM TABLE_NAME WHERE TO_CHAR(COLUMN_DATE,'MM')='01'; ELSE INSERT INTO TABLE_NAME(COLUMN_NAME1,COLUMN_NAME2) (SELECT COLUMN_NAME1,COLUMN_NAME2 FROM TABLE_NAME WHERE TO_CHAR(COLUMN_DATE,'MM')=TO_CHAR(SYSDATE-1,'MM')); END IF ; END; تطبيق المثال على جدول الموظفين BEGIN SELECT TO_CHAR(SYSDATE,'MM') INTO :GLOBAL.SYS FROM DUAL; IF :GLOBAL.SYS= '01' THEN SELECT SUM(NVL(SALARY,0))+SUM(NVL(COMMISSION_PCT,0)) INTO :DIS FROM EMPLOYEES WHERE TO_CHAR(HIRE_DATE,'MM')='01'; ELSE INSERT INTO EMP1 (SELECT HIRE_DATE FROM EMPLOYEES WHERE TO_CHAR(HIRE_DATE,'MM')=TO_CHAR(SYSDATE-1,'MM')) ; END IF; END; محمد ابوالعلا ORACLE DEVELOPER اقتباس رابط هذا التعليق شارك المزيد من خيارات المشاركة
shosho842000 بتاريخ: 13 فبراير 2010 كاتب الموضوع تقديم بلاغ مشاركة بتاريخ: 13 فبراير 2010 شكرا الاخ العزيز محمد ابو العلا بس فى تعديل بسيط على المثال انا عايزاه وهو بيعمل insert للبيانات الى جايه من الشهر الى فات يخلى التاريخ ب1 مش ب 12 دا التعديل البسيط الى عايزاه ولا حضرتك شايف ايه لان المفرض دى هتكون مرتبات شهر جديد ؟؟؟وشكرا اقتباس رابط هذا التعليق شارك المزيد من خيارات المشاركة
محمد ابوالعلا بتاريخ: 14 فبراير 2010 تقديم بلاغ مشاركة بتاريخ: 14 فبراير 2010 (معدل) هنكتب نفس الكود مع تغيير هذه الجملة ELSE SELECT LAST_DAY(HIRE_DATE) INTO :GLOBAL.NEW FROM EMPLOYEES WHERE TO_CHAR(HIRE_DATE,'MM')=TO_CHAR(SYSDATE-1,'MM'); :GLOBAL.NEW:=:GLOBAL.NEW+1; INSERT INTO EMP1 VALUES (:GLOBAL.NEW); END IF; END; MOHAMED ABOUELELA [email="[email protected]"][email protected][/email] تم تعديل 14 فبراير 2010 بواسطة محمد ابوالعلا اقتباس رابط هذا التعليق شارك المزيد من خيارات المشاركة
shosho842000 بتاريخ: 14 فبراير 2010 كاتب الموضوع تقديم بلاغ مشاركة بتاريخ: 14 فبراير 2010 شكرا على الكود بس فى مشكله انى مش فاهما الكود الاخير الى بعد التعديل فى سؤال اخر لو تكرمت ممكن تقولى اعمله ازاى على sql server وشكرا اقتباس رابط هذا التعليق شارك المزيد من خيارات المشاركة
shosho842000 بتاريخ: 14 فبراير 2010 كاتب الموضوع تقديم بلاغ مشاركة بتاريخ: 14 فبراير 2010 حضرتك تقصد انى اعمل جدول خاص بالشهور على كدا يكون منفضل انا كونت اقصد انى يكون فى نفس الجدول بس دا الى فهمته على اساس انك عامل جدول emp1 ومدخل جواه الشهر اقتباس رابط هذا التعليق شارك المزيد من خيارات المشاركة
محمد ابوالعلا بتاريخ: 14 فبراير 2010 تقديم بلاغ مشاركة بتاريخ: 14 فبراير 2010 (معدل) تطبيق المثال على جدول الموظفين BEGIN SELECT TO_CHAR(SYSDATE,'MM') INTO :GLOBAL.SYS FROM DUAL; IF :GLOBAL.SYS= '01' THEN SELECT SUM(NVL(SALARY,0))+SUM(NVL(COMMISSION_PCT,0)) INTO :GLOBAL.DIS FROM EMPLOYEES WHERE TO_CHAR(HIRE_DATE,'MM')='01'; ELSE SELECT LAST_DAY(HIRE_DATE) INTO :GLOBAL.NEW FROM EMPLOYEES WHERE TO_CHAR(HIRE_DATE,'MM')=TO_CHAR(SYSDATE,'MM')-1; :GLOBAL.NEW:=:GLOBAL.NEW+1; INSERT INTO EMPLOYEES VALUES (:GLOBAL.NEW); END IF; END; شرح الكود هات تاريخ السيرفر وضعة فى متغير عام واختبر المتغير العام هل يساوى شهر 1 لو بيساوى شهر 1 هات اجمالى مجموع المرتبات ومجموع الحوافز وضعها فى متغير عام لما بيكون الشهر هو شهر 1 غير كدة يعنى لو مش بيساوى شهر 1 هات اخر يوم فى الشهر وضعة فى متغير عام لما بيكون الشهر بيساوى الشهر الماضى وزو د علية يوم واحد على المتغير العام المشحون باخر يوم فى الشهر علشان يجبلى الشهر الجديد وادرج الشهر الجديد فى الجدول ممكن اضع حقول اخرى غير التاريخ اما بالنسبة SQL SERVER فليس لدى خبرة MOHAMED ABOUELELA [email="[email protected]"][/email] تم تعديل 14 فبراير 2010 بواسطة محمد ابوالعلا اقتباس رابط هذا التعليق شارك المزيد من خيارات المشاركة
Recommended Posts
انضم إلى المناقشة
يمكنك المشاركة الآن والتسجيل لاحقاً. إذا كان لديك حساب, سجل دخولك الآن لتقوم بالمشاركة من خلال حسابك.