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

  • تسجيل الدخول عبر الفيس بوك تسجيل الدخول عبر تويتر Log In with LinkedIn Log In with Google      تسجيل دخول    
  • إنشاء حساب

صورة
- - - - -

ممكن مساعدة فى SUB QUERY


4 رد (ردود) على هذا الموضوع

#1 محمد سعيد

محمد سعيد

    عضو مميز

  • الأعضــاء
  • 534 مشاركة
  • البـلـد: Country Flag

تاريخ المشاركة 20 November 2005 - 03:37 PM

السلام عليكم
عاوز يا جماعة اعرف الفرق بين ANY , ALL فى SUB QUERY ويا ريت مع مثال وجزاكم الله خيرا

#2 alaa_ali

alaa_ali

    مشترك

  • الأعضــاء
  • 100 مشاركة
  • البـلـد: Country Flag

تاريخ المشاركة 21 November 2005 - 08:09 AM

Hi

IN = Equal to any member in the list

ANY = Compare value to each value returned by
The sub query

ALL = Compare value to every value returned
By the sub query

-------------------------------
SELECT last_name, salary, department_id
FROM employees
WHERE salary IN (SELECT MIN(salary)
FROM employees
GROUP BY department_id);
------------------------------------------------
SELECT employee_id, last_name, job_id, salary
FROM employees
WHERE salary < ANY(SELECT salary
FROM employees
WHERE job_id = ’IT_PROG’)
AND job_id <> ’IT_PROG’;
-----------------------------------------
SELECT employee_id, last_name, job_id, salary
FROM employees
WHERE salary < ALL(SELECT salary
FROM employees
WHERE job_id = ’IT_PROG’)
AND job_id <> ’IT_PROG’;
-----------------------------------------


Thank’s

ALAA ALI
OCP DBA9i

#3 محمد سعيد

محمد سعيد

    عضو مميز

  • الأعضــاء
  • 534 مشاركة
  • البـلـد: Country Flag

تاريخ المشاركة 21 November 2005 - 02:05 PM

السلام عليكم انا باقول بالبلدى يعنى شرح مبسط مش بالانجليزى وكمان المنتدى دة باللغة العربية لغة القران فلماذا نتركها ونذهب للغة الاعاجم

#4 m_dba

m_dba

    عضو نشط

  • الأعضــاء
  • 238 مشاركة
  • الاسم الأول:Ahmad
  • اسم العائلة:Zaki
  • البـلـد: Country Flag

تاريخ المشاركة 21 November 2005 - 05:12 PM

SELECT last_name, salary, department_id
FROM employees
WHERE salary IN (SELECT MIN(salary)
FROM employees
GROUP BY department_id);
يعني احضار كل من الاسم واالراتب ورقم الدائرة بشرط ان يكون الراتب ضمن قائمة اقل الرواتب لكل دائرة وكأنك تقول بشرط ان
where salary in(400,600,800) groub by department_id
--------------------------------------------------------------------------
SELECT employee_id, last_name, job_id, salary
FROM employees
WHERE salary < ANY(SELECT salary
FROM employees
WHERE job_id = ’IT_PROG’)
AND job_id <> ’IT_PROG’;
يعني اختيار كل ما ذكر بشرط ان يكون الراتب اقل من اقل الرواتب
----------------------------------------------------------------------
SELECT employee_id, last_name, job_id, salary
FROM employees
WHERE salary < ALL(SELECT salary
FROM employees
WHERE job_id = ’IT_PROG’)
AND job_id <> ’IT_PROG’;
وهنا بشرط ان يكون الراتب اقل من رواتب الجميع في دائرة الحاسوب
امسح ذنوبك في دقيقتين - بس دقيقتين وشوف

http://www.shbab1.com/2minutes.htm

#5 Osama Soliman

Osama Soliman

    مشرف سابق وعضو مميز

  • المجموعة الماسية
  • 1,611 مشاركة
  • الاسم الأول:Osama
  • اسم العائلة:Soliman
  • البـلـد: Country Flag
  • المنصب الحالي:Oracle Technical Consultant - Asfour Crystal International

تاريخ المشاركة 08 January 2006 - 02:17 AM

الاخ الفاضل / محمد سعيد
السلام عليكم ورحمة الله وبركاته
تستخدم المعاملات ANY , ALL فى مقارنة مجموعة من القيم

مثال 1
ٍSELECT last_name
FROM employees
WHERE department_id = ANY (10,20)

ففى هذا المثال يتم عرض اسماء الموظفين الموجودين بكلا الادارتين 10 و20 وعند استخدام المعامل ANY مع = فان هذا يعادل استخدام IN

مثال 2
ٍSELECT last_name
FROM employees
WHERE department_id >ALL(10,20)

فى هذا المثال يتم عرض اسماء الموظفين الموجودين فى الادارات التى تكون اكبر من 10 أواكبر من 20

مثال 3
ٍSELECT last_name
FROM employees
WHERE department_id >ANY(10,20)

فى هذا المثال يتم عرض اسماء الموظفين الموجودين فى الادارات التى تكون اكبر من 10 واكبر من 20 ايضاً

ونلاحظ من الامثلةان المعاملات ALL, ANY لابد وان تسبق باحد المعاملات الرياضية مثل = أو <

واخيراً يمكنك اخ محمد ان تستخدم الـ Subquery بدلاً من القيم المكتوبة (فى الأمثلة السابقة)

مثال :
ٍSELECT last_name
FROM employees
WHERE department_id =ANY(SELECT department_id FROM departments WHERE region_id = 1500)

وقل رب زدنى علماً
Osama M. Soliman
Oracle Certified Professional
Oracle Technical Consultant

 Asfour Crystal International
Cairo - Egypt
Osama.Soliman@hotmail.com
Osama.Soliman@asfourcystal.com