بتاريخ: 9 فبراير 200917 سنة comment_148764 السلام عليكم اخواني هاتان المسألتان قمت بحلهما ولكن الشكل النهائي للحل لا يوافق مخرجات الكتاب اتمني ان تراجعوا الحل وتخبروني بمدي صحته السؤال الأول هو Create a query to display the total number of employees and, of that total, the number of employees hired in 1995, 1996, 1997, and 1998. Create appropriate column headingsالحل يظهر السنوات في صورة أعمدة و عمود به مجموعة عدد الموظفين ... وانا اظهرتهم بصورة افقة ولم استطع اظهار المجموع .... select to_char(hire_date,'yyyy')YEARs,count(*) as "Employees Hired" from employees where to_char(hire_date,'yyyy') in('1995','1996','1997','1998') group by to_char(hire_date,'yyyy') order by YEARs السؤال الثاني :Create a matrix query to display the job, the salary for that job based on department number, and the total salary for that job, for departments 20, 50, 80, and 90, giving each column an appropriate headingوحل هذه المسالة كذلك ... اريد ان تكون الادارات في صورة راسية وتحت كل ادارة اجمالي المرتبات وعلى المحور الراسي تظهر الوظائف كما في الصورة المرفقة select Job_id, DEPARTMENT_ID ,sum(salary) from employees where department_id in (20,50,80,90) group by Job_id,DEPARTMENT_ID order by 2,3 المرفقات (صورة للنتائج المطلوبة)http://www.araboug.org/ib/index.php?act=at...st&id=10812انتظر تصحيح الاخطاء والتعديلات بشغف محبكم BETA_SMART تقديم بلاغ
بتاريخ: 9 فبراير 200917 سنة comment_148801 USE DECODE FUNCTION FOR QUESTION NO 1: SELECT COUNT (*) AS TOTAL , SUM (Y95) AS Y1995 ,SUM (Y96) AS Y1996 ,SUM (Y97) AS Y1997 ,SUM (Y98) AS Y1998 FROM ( SELECT EMP_NO , DECODE(to_char(hire_date,'yyyy'), '1995',1) Y95 , DECODE(to_char(hire_date,'yyyy'), '1996',1) Y96 , DECODE(to_char(hire_date,'yyyy'), '1997',1) Y97 , DECODE(to_char(hire_date,'yyyy'), '1998',1) Y98 FROM employees ) AS TABLE01 تقديم بلاغ
بتاريخ: 9 فبراير 200917 سنة comment_148818 السؤال الثاني :Create a matrix query to display the job, the salary for that job based on department number, and the total salary for that job, for departments 20, 50, 80, and 90, giving each column an appropriate heading تفضل SELECT job_id "Job", SUM(DECODE(department_id , 20, salary)) "Dept 20", SUM(DECODE(department_id , 50, salary)) "Dept 50", SUM(DECODE(department_id , 80, salary)) "Dept 80", SUM(DECODE(department_id , 90, salary)) "Dept 90", SUM(salary) "Total" FROM employees GROUP BY job_id; تقديم بلاغ
بتاريخ: 10 فبراير 200917 سنة كاتب الموضوع comment_148886 اشكركم اخوي Mr.Abdullah و اخوي a_mukhtar78 وكنت اطمع في شرح بسيط لافهم كيف تمت هذه العملية ولكم مني خالص الشكر والتقديراخوكم تقديم بلاغ
بتاريخ: 10 فبراير 200917 سنة comment_148887 بالنسبة للسؤال الاول : 1- عملنا جدول مؤقت Sub Query يعطينا نفس الأعمدة اللتي نريد تجميعها فيما بعد بأرقام السنوات من 1995 إلى 19982- يتم وضع رقم 1 أمام حقل السنة التي تم تعيين الموظف بها عن طريق دالة DECODE3- يتم تجميع الأرقام الموجودة بكل حقل باستخدام SUM للحصول على عدد الموظفين بكل سنة4- يلاحظ عدم استخدام Group By لأننا نريد تجميع جميع السجلات و الحصول على سطر واحد فقط تقديم بلاغ
بتاريخ: 10 فبراير 200917 سنة كاتب الموضوع comment_148891 بالنسبة للسؤال الاول : 1- عملنا جدول مؤقت Sub Query يعطينا نفس الأعمدة اللتي نريد تجميعها فيما بعد بأرقام السنوات من 1995 إلى 19982- يتم وضع رقم 1 أمام حقل السنة التي تم تعيين الموظف بها عن طريق دالة DECODE3- يتم تجميع الأرقام الموجودة بكل حقل باستخدام SUM للحصول على عدد الموظفين بكل سنة4- يلاحظ عدم استخدام Group By لأننا نريد تجميع جميع السجلات و الحصول على سطر واحد فقط الاخ الكريم ... انا شاكر جدا لك .. شرح وافي وحل رائع ولكن هذا المثال موجود في الفصل الرابع من مادة الاوركال وهو لم يقم بعد بشرح الـ Sub Query ... فهل هذا يعني ان لها حل اخر بدون استخدام الـ Sub Query واشكرك جدا ولك تحياتي واحترامي اخوك تم تعديل 10 فبراير 200917 سنة بواسطة beta_smat تقديم بلاغ
بتاريخ: 11 فبراير 200917 سنة comment_148938 ممكن نستخدم طريقة الأخ Mr.Abdullah فهي لا تعتمد على Sub Queryبس انا بصراحة ما جربتهاش SELECT COUNT (*) AS TOTAL , SUM (DECODE(to_char(hire_date,'yyyy'), '1995',1)) AS Y1995 , SUM (DECODE(to_char(hire_date,'yyyy'), '1996',1)) AS Y1996 , SUM (DECODE(to_char(hire_date,'yyyy'), '1997',1)) AS Y1997 , SUM (DECODE(to_char(hire_date,'yyyy'), '1998',1)) AS Y1998 FROM employees; ] تقديم بلاغ
بتاريخ: 11 فبراير 200917 سنة كاتب الموضوع comment_148968 تسلم اخوي بارك الله فيك ... هي فعلا تعمل بنجاح واستطيع ان افسرها بنفس الطريقة التي قمت بشرحها لي جزاكم الله خيرا اخواني وبارك الله فيكم محبكم سامح حسن تم تعديل 11 فبراير 200917 سنة بواسطة beta_smat تقديم بلاغ
بتاريخ: 15 أكتوبر 201015 سنة comment_201490 حل آخر للسؤال الأول SELECT COUNT (*) AS TOTAL , select count(*) from employees where to_char(hire_date,'yyyy')= '1995' AS Y1995 , select count(*) from employees where to_char(hire_date,'yyyy')= '1996' AS Y1996 , select count(*) from employees where to_char(hire_date,'yyyy')= '1997' AS Y1997 , select count(*) from employees where to_char(hire_date,'yyyy')= '1998' AS Y1998 FROM employees; يجوز استخدام جمله الاختيار مكان اسم العامود فقط إذا كانت ترجع قيمه واحدة كهذا المثال تم تعديل 15 أكتوبر 201015 سنة بواسطة Sireen تقديم بلاغ
انضم إلى المناقشة
يمكنك المشاركة الآن والتسجيل لاحقاً. إذا كان لديك حساب, سجل دخولك الآن لتقوم بالمشاركة من خلال حسابك.