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

TWO SQL STATMENTS


ELMUBARAK

Recommended Posts

I AM STUDYING SQL BY MY SELF AND HAVE FACE THE NEXT TWO QUERY STATMENT I CANN'T SOLVE THEM SO IF U HAVE ANY SOLUTION TELL ME
1.Create a query that will 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.
2. 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 10,20, and 30, giving each column an appropriate heading.

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

الاخ العزيز
بالنسبة الي الكويري الاول فممكن كتابته كالتالي
Select Count (empno)
from emp
where to_char( hiredate,'yyyy') between '1995' and '1998';
اما عن الكويري الثاني فانا لم اتعامل مع الماتريكس كويري و ان كنت تريد النتائج فقط و ليس كويري ماتريكس بالذات
فاعتقد انه ممكن الحصول عليها
بالتوفيق
hanon_ocp

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

بسم الله الرحمن الرحيم


السلام عليكم ورحمة الله



اجابة السؤال الاول تعتمد على وظيفة الديكود والاجابة كما يلي :

select count(*) total , 
sum (decode(to_char(hiredate,'YYYY') , 1995,1,0))"1995" ,
sum (decode(to_char(hiredate,'YYYY') , 1996,1,0))"1996" ,
sum (decode(to_char(hiredate,'YYYY') , 1997,1,0))"1997" ,
sum (decode(to_char(hiredate,'YYYY') , 1998,1,0))"1998"  
from emp ;
اجابة السؤال الثاني 

select  job "JOB" , 
sum(decode(deptno,10,sal)) "department 10",
sum(decode(deptno,20,sal)) "department 20",
sum(decode(deptno,30,sal)) "department 30",
sum(sal) "Total"
from emp group by job;


مع تميانتي بالتوفيق

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

بسم الله الرحمن الرحيم



السلام عليكم ورحمة الله
السؤال الاول : المعلومات المطلوب اظهارها هى الاتي :
1 - اجمالى عدد الموظفين .
2- من هذا العدد الاجمالى , مطلوب توزيع هذا العدد على سنوات تعيين محدده ومختلفة وهى اربع سنوات وقد يكون هذا الاجمالى الناتج من التوزيع مساويا أو أقل من العدد الاجمالى الناتج من الخطوه الاولى لأنة لم يأخذ كل سنوات التعيين لكل الموظفين ولكنة حدد سنوات اربع فقط كما فى السؤال ... اي ان المطلوب كالاتي :
عدد الموظفين -------- 1995 ---- 1996 ----1997 ----- 1998
14 ---------------------3 ---------2 -------- 1 ------------8
هذه الارقام افتراضيه طبعا بمعني ان 3+2 +1 + 8 = 14

عموما اذا ارد ت تجربة هذا الامر مع سكوت / تيجر المطلوب منك فقط استبدال السنوات 1995 الى 1998 بالسنوات 1980 الى 1983 . ونفذ الأمر وشاهد النتيجة .

ارفق ملف به امر التنفيذ ونتيجة التنفيذ . مع سكوت / تيجر .
مع تمنياتي بالتوفيق .

decode.txt

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

بسم الله الرحمن الرحيم و الصلاة و السلام علي أشرف الخلق و سيد العالمين سيدنا محمد صلي الله علية و سلم
السلام عليكم و رحمة الله و بركاته ،،،
في البداية أود أن أحمد الله علي أن هداني لهذا المنتدي الممتاز ، لقد وصل بي الأمر ان أعتقد انه ليس هناك من يريد مساعدة الناس من خلال مشاهدتي للمنتديات الآخري .
اشكر الأخ hanon_OCP علي محاولته الكريمة في مساعدتي و لكن بالفعل أنا لم أكن انتظر هذة الإجابة و لكن شكراً علي الرد و التفاعل السريع مع الرساله و الحمد لله أن الأخ Amgad أجاب الأجابة المراد الوصول إليها و من الواضح أنه خبير
أو في النهاية شكر القائمين علي هذا المنتدي و أود أن أكون مساهماً فعال في مشاركات المستقبل حيث أني جديد في التعامل مع Oracle كما اني احاول تحصيل دروسه بمفردي

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

السلام عليكم
اخ امجد
اعتقد اني قلت فعلا اني قد فهمت السؤال خطأ
و لذلك فلم تكن الاجابة هي المطلوبة
و ايضا انا لا اعرف مستوي من يسأل حتي احدد اذا كانت هذه الاجابة المباشرة هي ما يريده ام لا
ايضا انا احاول اقتطاع جزء من وقتي حت ياستطيع المشاركة في هذا المنتدي
و احاول المشاركة بفاعلية في هذا الجزء الصغير
و علي اي حال مشكور علي جهدك وردك
و اسف مرة اخري اذا كنت فهمت السوال خطأ
وعلي اي حال هذه اجابة اخري اخ المبارك لسؤالك بعد ان فهمته بطريقة صحيحة

select count (*) tot_per_year ,null year
from emp union
select count (*) , to_char(hiredate,'yyyy')
from emp where to_char(hiredate,'yyyy') between '1980' and '1983'
group by to_char(hiredate,'yyyy')
order by year
/


و مرفق ملف به الكود و نتيجة التنفيذ علي سكوت وتايجر
و اذا كان هناك اختلاف ف النتأئج فراجع للداتا طبعا
مشكور جدا

hanon_ocp

sol.txt

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

بسم الله الرحمن الرحيم


السلام عليكم ورحمة الله وبركاته،،
الأخ / hanon_ocp
أشكرك للاهتمام والتوضيح وايضا شكرا لمشاركتك الفعاله فى هذا المنتدي
وجزاك الله خيرا

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

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

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

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

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

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

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

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