السلام عليكم و رحمة الله و بركاته
ما هو استعلام sql جمع نتائج ثلاث جداول بجدول ثالث ؟
عندي 3 جداول كل جدول به 3 حقول الحقل الاول الاسم.. الثاني العلامة..الثالث السنة
الاستعلام ل1لحصول على جدول واحد فيه الاسم و مجموع علامته من الجدوال الثلاث لأنها نفس الاسماء في الجداول الثلاثة.
مثال الجدول1 فيه
أحمد 9
علي 7
عمر 11
الجدول2
أحمد 8
علي 12
عمر 10
الجدول3
أحمد 13
علي 10
عمر 10
النتيجة في جدول جديد
أحمد 30
علي 29
عمر 31
السلام عليكم...
كود :
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 في الجداول الثلاثة.
نرجو الاستفادة و السلام.
السلام عليكم
بإستخدام 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
بالتوفيق
بارك الله فيكم
هناك إضافة فقط و هي أن "احمد" يمكن أن يتواجد في الجدول الاول فقط
و أن "علي" يمكن أن يتواجد مرتين في الجدول الثاني مثلا
الجدول الاول
مثال الجدول1 فيه
أحمد 9
علي 7
عمر 11
الجدول2
علي 12
علي 13
عمر 10
الجدول3
علي 10
عمر 10
علي 9
عمر 5
النتيجة في جدول جديد
احمد 9
علي 42
عمر 36
مع العلم أن "علي" مكرر ليس تشابه أسماء بل هو نفسه مكرر عدة مرات
السلام عليكم
يمكنك القيام بعملية الجمع لكل جدول داخل
كود :
SELECT tabSum.StdName, sum(tabSum.Marks) as sumMarks
from
(
)
حاول
بالتوفيق
أخي عبد الجليل والله لقد حاولت عشرات المرات إن لم أقل المئات قبل أن أطرح السؤال في المنتدى لكن في كل مرة أحصل على نتيجة خاطئة.
شكرا لك أخي عبد الجليل لقد وجدت الحل و هو بتغيير union بـــ union all
بارك الله فيكم.
السلام عليكم و رحمة الله و بركاته