delphi4arab منتديات دلفي للعرب

نسخة كاملة : ما هو استعلام sql جمع نتائج ثلاث جداول بجدول ثالث
أنت حالياً تتصفح نسخة خفيفة من المنتدى . مشاهدة نسخة كاملة مع جميع الأشكال الجمالية .
السلام عليكم و رحمة الله و بركاته

ما هو استعلام 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 ( )
حاول Rolleyes

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

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