بتاريخ: 22 ديسمبر 200718 سنة comment_118824 بسم الله الرحمن الرحيم أخوانى فى الله .... كل عام و نحن الى الله اقرب و لطاعته افضل ان شاء الله .. اليوم سوف نتحدث عن درس هام جدا و هو الفصل السادس فى كتاب اوراكل .. الدرس بعنوان : Using Subqueries to Solve Queries وكى نفهم اهمية الدرس جيدا اود ان ابدأ الدرس بسؤال:* طلب منك مديريك تقرير يسترجع أسم الموظف الذى يحصل على اقل مرتب .. كيف تقوم بعمل جملة ال Select التى ترجع بهذه النتيجه ؟؟؟! بالطبع لا يمكن عمل جمله واحده فقط و لكن عليك بعمل الأتى:1- جمله تقوم باسترجاع اقل مرتب بالشركه كما يلى: Select Min(salary)From employees; 2 – بفرض ان اقل مرتب هو 2100 اذا يتم عمل جمله ثانيه حتى نستطيع معرفة اسم الموظف الذى يحصل على 2100 دولار و هو اقل مرتب كما يلى: Select last_name , salaryFrom employeesWhere salary = 2100; هكذا يمكن الحصول على التقرير المطلوب ... و لكن كم هى عمليه شاقه جدا .. لهذا سوف نتعلم معا اليوم معنى الأستعلام الفرعى ( Subquery ) لحل مثل هذه المشكلات ..** أولا: صيغة الـ Subquery : SELECT select_listFROM tableWHERE expr operator (SELECT select_list FROM table); و بناءا على هذه الصيغه يمكن كتابة التقرير السابق فى جمله واحده كما يلى: SELECT last_name , SalaryFROM EmployeesWHERE salary = (SELECT Min(salary) FROM Employees); اعتقد انها اسهل الأن .. فبدلا من ان نكتب جملتين فقد قمنا بكتابة جمله واحده فقط ...** أنواع الأستعلام الفرعى : Types of Subqueries 1- Single-row subqueryالمقصود بهذا النوع ان الأستعلام الفرعى يسترجع فقط صف واحد او قيمه واحده مثل اقل مرتب . ومع هذا النوع يتم استخدام هذه المعاملات (Single-Row Subqueries ) = Equal to > Greater than >= Greater than or equal to < Less than <= Less than or equal to <> Not equal toمثال : SELECT last_name, job_id, salaryFROM employeesWHERE job_id = (SELECT job_id FROM employees WHERE employee_id = 141)AND salary > (SELECT salary FROM employees WHERE employee_id = 143);--------------------------------------------------------------------SELECT department_id, MIN(salary)FROM employeesGROUP BY department_idHAVING MIN(salary) > (SELECT MIN(salary) FROM employees WHERE department_id = 50); 2- Multiple-row subqueryالمقصود بهذا النوع ان الأستعلام الفرعى يسترجع أكثر من صف واحد او قيمه واحده مثل المرتبات التى تزيد عن 1000 دولار . ومع هذه النوع نستخدم هذه المعاملات :Operator MeaningIN Equal to any member in the listANY Compare value to each value returned by the subquery ALL Compare value to every value returned by the subquery مثال: SELECT employee_id, last_name, job_id, salaryFROM employeesWHERE salary < ANY (SELECT salary FROM employees WHERE job_id = 'IT_PROG')AND job_id <> 'IT_PROG';-------------------------------------------------------------SELECT employee_id, last_name, job_id, salaryFROM employeesWHERE salary < ALL (SELECT salary FROM employees WHERE job_id = 'IT_PROG')AND job_id <> 'IT_PROG'; هذا و بالله التوفيق،،المرفقات:شرح الفصل من كتاب اوراكلاسئلة الأمتحان على هذا الفصل Les06.ppt Subquery.pdf تقديم بلاغ
بتاريخ: 26 ديسمبر 200718 سنة comment_119177 اخي الاستاذ سامح اكرمك الله علي ما تقدمه الي شباب الامة حفظك الله وزادك من فضله لقد تابعت الدروس مع حضرتك ولكن انن متوقف عند الدرس الرابع حيث يوجد جزء عندما اقوم بتنفيذه تكون النتيجة سلبية وها هي الجملة SQL> select MONHS_BETWEEN('01-SEP-95','11-JAN-94') 2 " Date" 3 from dual;select MONHS_BETWEEN('01-SEP-95','11-JAN-94') *ERROR at line 1:ORA-00904: "MONHS_BETWEEN": invalid identifier وهكذا باقي الدرس علي فكرة انا اعمل عليplus SQL برجاء الافادة وشكراً لكم اسامة عبد العزيز - مصر - الجيزة - هرم تقديم بلاغ
بتاريخ: 29 ديسمبر 200718 سنة كاتب الموضوع comment_119343 أخى الفاضل هذا الخطأ يعنى انك كاتب اسم الداله خطأ ... الداله اسمها MONTHS_BETWEENشوف يا اسامه انت كاتبها ازاى ؟؟؟؟ جرب تانى و ان شاء الله تشتغل بس بعد التصحيح تقديم بلاغ
بتاريخ: 30 ديسمبر 200718 سنة comment_119434 الاخ العزيز الاستاذ سامح اكرمك الله وحفظك من كل سوء لقد عرفت خطئي ولكن استاذي الفاضل بعد تصحيح الخطا لم يتغير شيءالا انني قمت بتغير كتابة التاريخ مثلا من11- سبتمبر -95 طبعا بكتبها بالانجليزي كما تكتبونها الي 11-09-95 اي كتبت التاريخ بالارقام وكانت الاجابة صحيحةوالحمد لله .لكن السؤال هنا هو عندما قمت بتنفيذ الداله next- day وكتبت يوم الجمعة القادم لتاريخ ما اعطي لي error حيث تبن لي ان هناك تعارض بين الارقام والحروف فما هو الحل اذن وجزاكم الله خير الجزاء وتفضلوا بقبول فائق الاحترام والتقدير اسامة عبدالعزيز - 30 -12-2007 تقديم بلاغ
انضم إلى المناقشة
يمكنك المشاركة الآن والتسجيل لاحقاً. إذا كان لديك حساب, سجل دخولك الآن لتقوم بالمشاركة من خلال حسابك.