omran2015 قام بنشر منذ 20 ساعات قام بنشر منذ 20 ساعات عندي جدول باسم TBL_Final1 يتم فيه حفظ درجات الطلاب عن طريق الفيجوال دوت نت 2019 المشكلة أريد عرض الدرجات عمودياً في التقرير حسب الفصول الدراسية وفق الشرح الآتي: درجات الفصل الأول درجات الفصل الثاني مجموع درجات الفصلين أعمال امتحان أعمال امتحان المجموع الطريقة في حفظ الدرجات أفقياً حسب المصفوفات التالية: SemesterID = رقم الفصل الدراسي 1 = الفصل الأول 2 = الفصل الثاني 3 = مجموع درجات الفصلين حقول الدرجات حسب عدد المواد (9) مواد دراسية 1- المصفوفة on = درجات أعمال الفصلين الأول والثاني 2- المصفوفة to = درجات امتحان الفصلين الأول والثاني 3- المصفوفة tr = مجموع درجات أعمال الفصلين الأول والثاني المطلوب: كيف أستطيع تقسيم الجدول TBL_Final1 إلى ثلاث استعلامات بحيث يكون لكل فصل دراسي استعلام حتى أستطيع عرض الدرجات في التقرير بطريقة عمودية؛ لأنني قمت بتقسيم الجدول إلى ثلاث استعلامات وجعلت لكل فصل دراسي استعلام ولكن أراها طريقة غير مقبولة ومن الشهل التلاعب بهذه الاستعلامات فهل يوجد طريقة أذكى وأضمن وأفضل من هذه الطريقة علماً بأن طريقة التقرير وتنسيقه موضحة في الصورة المرفقة مع قاعدة البيانات مرفق قاعدة البيانات DataBase.zip
Foksh قام بنشر منذ 19 ساعات قام بنشر منذ 19 ساعات وعليكم السلام ورحمة الله وبركاته .. جرب هذا الاستعلام 😉 :- SELECT S.StudentID, S1.on1 AS S1_on1, S1.on2 AS S1_on2, S1.on3 AS S1_on3, S1.on4 AS S1_on4, S1.on5 AS S1_on5, S1.on6 AS S1_on6, S1.on7 AS S1_on7, S1.on8 AS S1_on8, S1.on9 AS S1_on9, S1.to1 AS S1_to1, S1.to2 AS S1_to2, S1.to3 AS S1_to3, S1.to4 AS S1_to4, S1.to5 AS S1_to5, S1.to6 AS S1_to6, S1.to7 AS S1_to7, S1.to8 AS S1_to8, S1.to9 AS S1_to9, S1.tr1 AS S1_tr1, S1.tr2 AS S1_tr2, S1.tr3 AS S1_tr3, S1.tr4 AS S1_tr4, S1.tr5 AS S1_tr5, S1.tr6 AS S1_tr6, S1.tr7 AS S1_tr7, S1.tr8 AS S1_tr8, S1.tr9 AS S1_tr9, S2.on1 AS S2_on1, S2.on2 AS S2_on2, S2.on3 AS S2_on3, S2.on4 AS S2_on4, S2.on5 AS S2_on5, S2.on6 AS S2_on6, S2.on7 AS S2_on7, S2.on8 AS S2_on8, S2.on9 AS S2_on9, S2.to1 AS S2_to1, S2.to2 AS S2_to2, S2.to3 AS S2_to3, S2.to4 AS S2_to4, S2.to5 AS S2_to5, S2.to6 AS S2_to6, S2.to7 AS S2_to7, S2.to8 AS S2_to8, S2.to9 AS S2_to9, S2.tr1 AS S2_tr1, S2.tr2 AS S2_tr2, S2.tr3 AS S2_tr3, S2.tr4 AS S2_tr4, S2.tr5 AS S2_tr5, S2.tr6 AS S2_tr6, S2.tr7 AS S2_tr7, S2.tr8 AS S2_tr8, S2.tr9 AS S2_tr9, S3.on1 AS S3_on1, S3.on2 AS S3_on2, S3.on3 AS S3_on3, S3.on4 AS S3_on4, S3.on5 AS S3_on5, S3.on6 AS S3_on6, S3.on7 AS S3_on7, S3.on8 AS S3_on8, S3.on9 AS S3_on9, S3.to1 AS S3_to1, S3.to2 AS S3_to2, S3.to3 AS S3_to3, S3.to4 AS S3_to4, S3.to5 AS S3_to5, S3.to6 AS S3_to6, S3.to7 AS S3_to7, S3.to8 AS S3_to8, S3.to9 AS S3_to9, S3.tr1 AS S3_tr1, S3.tr2 AS S3_tr2, S3.tr3 AS S3_tr3, S3.tr4 AS S3_tr4, S3.tr5 AS S3_tr5, S3.tr6 AS S3_tr6, S3.tr7 AS S3_tr7, S3.tr8 AS S3_tr8, S3.tr9 AS S3_tr9, S3.TotalSum, S3.average, S3.Grade, S3.FailCount, S3.Result FROM ((TBL_Students AS S LEFT JOIN TBL_Final1 AS S1 ON S.StudentID = S1.StudentID AND S1.SemesterID = 1) LEFT JOIN TBL_Final1 AS S2 ON S.StudentID = S2.StudentID AND S2.SemesterID = 2) LEFT JOIN TBL_Final1 AS S3 ON S.StudentID = S3.StudentID AND S3.SemesterID = 3; تم استخدام LEFT JOIN بدلاً من INNER JOIN لضمان ظهور الطالب في التقرير حتى لو نقصت بيانات أحد الفصول الدراسية (في هذه الحالة ستظهر درجات ذلك الفصل فارغة بدلاً من اختفاء الطالب تماماً من التقرير) . واخبرنا بالنتيجة
omran2015 قام بنشر منذ 7 ساعات الكاتب قام بنشر منذ 7 ساعات 10 ساعات مضت, Foksh said: وعليكم السلام ورحمة الله وبركاته .. جرب هذا الاستعلام 😉 :- SELECT S.StudentID, S1.on1 AS S1_on1, S1.on2 AS S1_on2, S1.on3 AS S1_on3, S1.on4 AS S1_on4, S1.on5 AS S1_on5, S1.on6 AS S1_on6, S1.on7 AS S1_on7, S1.on8 AS S1_on8, S1.on9 AS S1_on9, S1.to1 AS S1_to1, S1.to2 AS S1_to2, S1.to3 AS S1_to3, S1.to4 AS S1_to4, S1.to5 AS S1_to5, S1.to6 AS S1_to6, S1.to7 AS S1_to7, S1.to8 AS S1_to8, S1.to9 AS S1_to9, S1.tr1 AS S1_tr1, S1.tr2 AS S1_tr2, S1.tr3 AS S1_tr3, S1.tr4 AS S1_tr4, S1.tr5 AS S1_tr5, S1.tr6 AS S1_tr6, S1.tr7 AS S1_tr7, S1.tr8 AS S1_tr8, S1.tr9 AS S1_tr9, S2.on1 AS S2_on1, S2.on2 AS S2_on2, S2.on3 AS S2_on3, S2.on4 AS S2_on4, S2.on5 AS S2_on5, S2.on6 AS S2_on6, S2.on7 AS S2_on7, S2.on8 AS S2_on8, S2.on9 AS S2_on9, S2.to1 AS S2_to1, S2.to2 AS S2_to2, S2.to3 AS S2_to3, S2.to4 AS S2_to4, S2.to5 AS S2_to5, S2.to6 AS S2_to6, S2.to7 AS S2_to7, S2.to8 AS S2_to8, S2.to9 AS S2_to9, S2.tr1 AS S2_tr1, S2.tr2 AS S2_tr2, S2.tr3 AS S2_tr3, S2.tr4 AS S2_tr4, S2.tr5 AS S2_tr5, S2.tr6 AS S2_tr6, S2.tr7 AS S2_tr7, S2.tr8 AS S2_tr8, S2.tr9 AS S2_tr9, S3.on1 AS S3_on1, S3.on2 AS S3_on2, S3.on3 AS S3_on3, S3.on4 AS S3_on4, S3.on5 AS S3_on5, S3.on6 AS S3_on6, S3.on7 AS S3_on7, S3.on8 AS S3_on8, S3.on9 AS S3_on9, S3.to1 AS S3_to1, S3.to2 AS S3_to2, S3.to3 AS S3_to3, S3.to4 AS S3_to4, S3.to5 AS S3_to5, S3.to6 AS S3_to6, S3.to7 AS S3_to7, S3.to8 AS S3_to8, S3.to9 AS S3_to9, S3.tr1 AS S3_tr1, S3.tr2 AS S3_tr2, S3.tr3 AS S3_tr3, S3.tr4 AS S3_tr4, S3.tr5 AS S3_tr5, S3.tr6 AS S3_tr6, S3.tr7 AS S3_tr7, S3.tr8 AS S3_tr8, S3.tr9 AS S3_tr9, S3.TotalSum, S3.average, S3.Grade, S3.FailCount, S3.Result FROM ((TBL_Students AS S LEFT JOIN TBL_Final1 AS S1 ON S.StudentID = S1.StudentID AND S1.SemesterID = 1) LEFT JOIN TBL_Final1 AS S2 ON S.StudentID = S2.StudentID AND S2.SemesterID = 2) LEFT JOIN TBL_Final1 AS S3 ON S.StudentID = S3.StudentID AND S3.SemesterID = 3; تم استخدام LEFT JOIN بدلاً من INNER JOIN لضمان ظهور الطالب في التقرير حتى لو نقصت بيانات أحد الفصول الدراسية (في هذه الحالة ستظهر درجات ذلك الفصل فارغة بدلاً من اختفاء الطالب تماماً من التقرير) . واخبرنا بالنتيجة بارك الله فيك على سرعة اهتمامك بالموضوع ولكن طريقة استخلاص الكود عن طريق تجميع الاستعلامات أعرفها جيداً وهذا هو الكود المستخدم ويعمل بنجاح SELECT Q_Students.StudentID, Q_Students.StudentName, Q_Students.ClassName, Q_S1.StudentID, Q_S1.SemesterID, Q_S1.on1, Q_S1.on2, Q_S1.on3, Q_S1.on4, Q_S1.on5, Q_S1.on6, Q_S1.on7, Q_S1.on8, Q_S1.on9, Q_S1.to1, Q_S1.to2, Q_S1.to3, Q_S1.to4, Q_S1.to5, Q_S1.to6, Q_S1.to7, Q_S1.to8, Q_S1.to9, Q_S1.tr1, Q_S1.tr2, Q_S1.tr3, Q_S1.tr4, Q_S1.tr5, Q_S1.tr6, Q_S1.tr7, Q_S1.tr8, Q_S1.tr9, Q_S2.StudentID, Q_S2.SemesterID, Q_S2.on1, Q_S2.on2, Q_S2.on3, Q_S2.on4, Q_S2.on5, Q_S2.on6, Q_S2.on7, Q_S2.on8, Q_S2.on9, Q_S2.to1, Q_S2.to2, Q_S2.to3, Q_S2.to4, Q_S2.to5, Q_S2.to6, Q_S2.to7, Q_S2.to8, Q_S2.to9, Q_S2.tr1, Q_S2.tr2, Q_S2.tr3, Q_S2.tr4, Q_S2.tr5, Q_S2.tr6, Q_S2.tr7, Q_S2.tr8, Q_S2.tr9, Q_S3.StudentID, Q_S3.SemesterID, Q_S3.on1, Q_S3.on2, Q_S3.on3, Q_S3.on4, Q_S3.on5, Q_S3.on6, Q_S3.on7, Q_S3.on8, Q_S3.on9, Q_S3.to1, Q_S3.to2, Q_S3.to3, Q_S3.to4, Q_S3.to5, Q_S3.to6, Q_S3.to7, Q_S3.to8, Q_S3.to9, Q_S3.tr1, Q_S3.tr2, Q_S3.tr3, Q_S3.tr4, Q_S3.tr5, Q_S3.tr6, Q_S3.tr7, Q_S3.tr8, Q_S3.tr9, Q_S3.TotalSum, Q_S3.average, Q_S3.Grade, Q_S3.FailCount, Q_S3.Result FROM Q_S3 INNER JOIN (Q_S2 INNER JOIN (Q_S1 INNER JOIN Q_Students ON Q_S1.StudentID = Q_Students.StudentID) ON Q_S2.StudentID = Q_Students.StudentID) ON Q_S3.StudentID = Q_Students.StudentID; لكن لا أريد هذه الطريقة !!! قلت لعله يوجد طريقة اخرى غير هه الطريقة والتي أضطر إلى تقسيم أو تجزئة الجدول إلى ثلاث استعلامات ثم عمل استعلام يتم تجميع فيه هذه الاستعلامات الثلاث في استعلام واحد والجدول يوضح نجاح هذه الطريقة
Foksh قام بنشر منذ 6 ساعات قام بنشر منذ 6 ساعات 53 دقائق مضت, omran2015 said: لكن لا أريد هذه الطريقة !!! قلت لعله يوجد طريقة اخرى غير هه الطريقة والتي أضطر إلى تقسيم أو تجزئة الجدول إلى ثلاث استعلامات ثم عمل استعلام يتم تجميع فيه هذه الاستعلامات الثلاث في استعلام واحد والجدول يوضح نجاح هذه الطريقة ما فهمت عليك بشكل جيد
omran2015 قام بنشر منذ 5 ساعات الكاتب قام بنشر منذ 5 ساعات 6 دقائق مضت, Foksh said: ما فهمت عليك بشكل جيد لا عليك أخي الحبيب قلت لعل هناك طريقة أخرى تغني عن تقسيم الجدول إلى ثلاث استعلامات وتم جمع هذه الاستعلامات الثلاثة في استعلام واحد القصد: هل يمكن استخدام الوحدات النمطية ثم جلب البيانات في استعلام واحد فقط بدل الاستعلامات الكثيرة
ناقل قام بنشر منذ 4 ساعات قام بنشر منذ 4 ساعات منذ ساعه, omran2015 said: قلت لعل هناك طريقة أخرى تغني عن تقسيم الجدول إلى ثلاث استعلامات وتم جمع هذه الاستعلامات الثلاثة في استعلام واحد هل هذا هو المطلوب اولا .... لاني عملته لك باستعلام واحد 1
omran2015 قام بنشر منذ 1 ساعه الكاتب قام بنشر منذ 1 ساعه (معدل) 2 ساعات مضت, ناقل said: هل هذا هو المطلوب اولا .... لاني عملته لك باستعلام واحد أحسنت بارك الله فيك وجزاك كل خير وفتح عليك فتح العارفين وزادك الله بسطةً في العلم الجسم هذا هو المطلوب تماماً وبما أن الاستعلام خرج بهذا الشكل الرائع و التنسيق الجمالي فأتمنى تعديل بسيط فقط ليشمل: 1- اســم الطالب 2- الصف الدراسي 3- اسم المادة وليس رقمها علماً بأن عدد المواد الدراسية = (9 ) كما في الجدول TBL_Coursess على الترتيب الحقول حقل رقم المادة = CoursesID حقل اسم المادة = CoursesName 1 = التربية الإسلامية 2 = اللغة العربية 3 = الكتابة 4 = اللغة الأنجليزية 5 = الحاسوب 6 = الرياضيات 7 = العلوم 8 = التاريخ 9 = الجغرافيا بصراحة أعرف أن هناك خبراء حباهم الله بالخبرة والذكاء والفطنة لحل هذه المشكلة انتظر رفع الملف تم تعديل منذ 57 دقائق بواسطه omran2015 طلب تعديل
omran2015 قام بنشر منذ 24 دقائق الكاتب قام بنشر منذ 24 دقائق 30 دقائق مضت, منتصر الانسي said: جرب المرفق Data_Base.rar 32.31 kB · 0 downloads بارك الله فيك أخي منتصر تعبتك معي والمرافق جميل أيضا ويصلح للعرض الأفقي ولكنه تعديل بسيط ويصبح من أجمل الاستعلامات وهو حقول الخمسة للنتائج الخاصة بمجموع الفصلين. استعلام جميل
الردود الموصى بها
انشئ حساب جديد او قم بتسجيل دخولك لتتمكن من اضافه تعليق جديد
يجب ان تكون عضوا لدينا لتتمكن من التعليق
انشئ حساب جديد
سجل حسابك الجديد لدينا في الموقع بمنتهي السهوله .
سجل حساب جديدتسجيل دخول
هل تمتلك حساب بالفعل ؟ سجل دخولك من هنا.
سجل دخولك الان