ما هو استعلام sql جمع نتائج ثلاث جداول بجدول ثالث
#1
السلام عليكم و رحمة الله و بركاته

ما هو استعلام sql جمع نتائج ثلاث جداول بجدول ثالث ؟
عندي 3 جداول كل جدول به 3 حقول الحقل الاول الاسم.. الثاني العلامة..الثالث السنة
الاستعلام ل1لحصول على جدول واحد فيه الاسم و مجموع علامته من الجدوال الثلاث لأنها نفس الاسماء في الجداول الثلاثة.

مثال الجدول1 فيه
أحمد 9
علي 7
عمر 11

الجدول2
أحمد 8
علي 12
عمر 10

الجدول3
أحمد 13
علي 10
عمر 10

النتيجة في جدول جديد
أحمد 30
علي 29
عمر 31
الرد
#2
السلام عليكم...

كود :
SELECT Table1.StdName, Table1.Marks + Table2.Marks + Table3.Marks AS SumOfMarks FROM (Table1 INNER JOIN Table2 ON Table1.StdName = Table2.StdName) INNER JOIN Table3 ON Table1.StdName = Table3.StdName

على اعتبار الجداول الثلاثة هي Table1 و Table2 و Table3 و أن اسم حقل اسم الطالب هو StdName في الجداول الثلاثة، و أن اسم حقل الدرجة هو Marks في الجداول الثلاثة.

نرجو الاستفادة و السلام.
الرد
#3
السلام عليكم

بإستخدام union
كود :
SELECT tabSum.StdName, sum(tabSum.Marks) as sumMarks from ( SELECT StdName, Marks from table1 union SELECT StdName, Marks from table2 union SELECT StdName, Marks from table3 ) as tabSum group by tabSum.StdName
بالتوفيق
الرد
#4
بارك الله فيكم
هناك إضافة فقط و هي أن "احمد" يمكن أن يتواجد في الجدول الاول فقط
و أن "علي" يمكن أن يتواجد مرتين في الجدول الثاني مثلا
الجدول الاول
مثال الجدول1 فيه
أحمد 9
علي 7
عمر 11

الجدول2

علي 12
علي 13
عمر 10

الجدول3
علي 10
عمر 10
علي 9
عمر 5

النتيجة في جدول جديد
احمد 9
علي 42
عمر 36

مع العلم أن "علي" مكرر ليس تشابه أسماء بل هو نفسه مكرر عدة مرات
الرد
#5
السلام عليكم

يمكنك القيام بعملية الجمع لكل جدول داخل
كود :
SELECT tabSum.StdName, sum(tabSum.Marks) as sumMarks from ( )
حاول Rolleyes

بالتوفيق
الرد
#6
أخي عبد الجليل والله لقد حاولت عشرات المرات إن لم أقل المئات قبل أن أطرح السؤال في المنتدى لكن في كل مرة أحصل على نتيجة خاطئة.
الرد
#7
شكرا لك أخي عبد الجليل لقد وجدت الحل و هو بتغيير union بـــ union all

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


التنقل السريع :


يقوم بقرائة الموضوع: بالاضافة الى ( 1 ) ضيف كريم