الفريق العربي للبرمجةأرشيف المنتديات · 2000 – 2023
نسخة أرشيفية للقراءة فقط — التسجيل والمشاركة مغلقان، والمحتوى محفوظ كما كان.

استفسار حول كيفية استخدام FULL OUTER JOIN

مغلقمُجاب
بدأه ahmad1981 في 20 يوليو 2013 · 6 رد · 666 مشاهدة · في قواعد بيانات Microsoft Access
مشاركة: واتساب X فيسبوك تيليجرام
#1 صاحب الموضوع

استفسار حول كيفية استخدام FULL OUTER JOIN  

#2

اخي الفاضل : احمد

 

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

 

وكل عام وانتم بخير

 

 

اتمنى ان تركز معي في الشرح جيدا حتى لا اعيد وازيد في الشرح

 

اولا :  عبارة  FULL OUTER JOIN   خاصة بـ  SQL  Server  اما قاعدة البيانات اكسيس فلا يوجد بها هذه العبارة

 

ثانيا : لإنشاء  FULL OUTER JOIN  في الإستعلام فإننا نحتاج الى عمل عدة استعلامات بمواصفات خاصة  حتى نحصل على استعلام توحيد

 

يجمع الإستعلامات التي سوف نقوم بإنشاءها .

 

حسب مثالك السابق  يوجد لدينا جدولين وهما   2006   و  2007  وكل جدول يوجد به دول ( مجموع دولة )  و قيم  Value  لهذه الدول 

 

1. سنقوم بعمل استعلام  ونسميه مثلا  Q1  ونضع فيه الجدول الأول 2006  والجدول الثاني  2007 ونربط بين الجدولين بعلاقة ناحية  الدوله

 

 وخاصية الربط الأولى ستكون ناحية الجدول  2007 بهذه الطريقة

 

 

post-15367-0-29129900-1374330334_thumb.g

 

وستكون نتائج الإستعلام بهذه الطريقة

 

post-15367-0-47363000-1374330397_thumb.g

 

 

2. سنقوم بعمل استعلام آخر Q2  بنفس الطريقة ولكن سوف نغير خاصية الربط للجدول الآخر بهذا الشكل

 

post-15367-0-09074000-1374330617_thumb.g

 

وستكون نتائج الإستعلام الثاني بهذه الطريقة

 

post-15367-0-01775000-1374330659_thumb.g

 

 

 

3. الآن نقوم بأخذ عبارات  الـ SQL  من الإستعلامين  ثم نضعهما في استعلام توحيد بهذه الطريقة

 

SELECT [2006].country, Sum([2006].value) AS 2006, Sum([2007].value) AS 2007
FROM 2006 LEFT JOIN 2007 ON [2006].country = [2007].country
GROUP BY [2006].country
 
UNION
 
SELECT [2007].country, Sum([2006].value) AS 2006, Sum([2007].value) AS 2007
FROM 2006 RIGHT JOIN 2007 ON [2006].country = [2007].country
GROUP BY [2007].country
 
 
 
لنحصل على استعلام توحيد   qryALL  به  FULL OUTER JOIN  من كلا الإستعلامين

 

post-15367-0-23945200-1374330983_thumb.g

 

وكما تلاحظ  ان جميع الدول موجوده في استعلام التوحيد بدون تكرار  

 

 

za-FULL_OUTER_JOIN.rar

 

 

 

بالتوفيق

1
#3

يسلمو اخت زهرة 

شكرا جزيلا

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

#4

كل عام وانت بالف خير 

 

بس في مشكلة صغيرة هلئ في التجميع للدول عم يجمع خطا مثلا بلجيكا في 2006 المفروض يكون المجموع 20 عم يطلع 40 وفي 2007 طلع 24 المفروض يكون 12 

ويا ريت اغلبك معي انه نضيف الكود للاستعلام 

#5

بس بدي اتاكد انه هذا الكود صح

SELECT Query3.code, Query3.country, Sum(Query3.SumOfvalue) AS SumOfSumOfvalue, Sum(Query4.SumOfvalue) AS SumOfSumOfvalue1
FROM Query3 LEFT JOIN Query4 ON (Query3.code = Query4.code) AND (Query3.country = Query4.country)
GROUP BY Query3.code, Query3.country;
UNION SELECT Query4.code, Query4.country, Sum(Query3.SumOfvalue) AS SumOfSumOfvalue, Sum(Query4.SumOfvalue) AS SumOfSumOfvalue1
FROM Query3 RIGHT JOIN Query4 ON (Query3.code = Query4.code) AND (Query3.country = Query4.country)
GROUP BY Query4.code, Query4.country;
#6 أفضل إجابة

تفضل اخي الكريم

 

الملف بعد التعديل بناء على طلبك

 

post-15367-0-02845600-1374410246_thumb.g

 

 

 

za-FULL_OUTER_JOIN-UP.rar

 

بالتوفيق

1
#7

شكرا اختي زهرة

هذا الموضوع مغلق.

مواضيع مشابهة