النتائج 1 إلى 6 من 6

الموضوع: لخبراء الـــ Sql Query سؤال صعب

  1. #1
    عضو جديد
    تاريخ التسجيل
    Nov 2003
    المشاركات
    24

    لخبراء الـــ Sql Query سؤال صعب



    عندى قاعده بيانات مدرسه , تحتوى على بيانات الطلاب , من بيانات شخصيه ودراجتهم الخ ....

    ولنفترض انه يوجد عدد 10 مواد و 4 فرق

    اريد عمل استعلام لعرض درجات الطلاب الراسبين في مادتين لفرقة واحدة

    بفرض ان النجاح من 50 والدرجه الكليه من 100 لكل ماده على حدى


    هذا بالنسبه للاستعلام الاول

    بالنسبه للاستعلام الثانى

    اريد عرض درجات الطلاب الراسبين في أكثر من مادتين لفرقة واحدة

    فما هو الحل





    __________________
    هل تريد افلام فلاشيه احترافيه لموقعك ؟؟

    تصميمات مواقع احترافيه , تصميم فلاش احترافى بجميع انواعه , تصاميم جرافيك احترافيه

    ارسعار لا تقارن...
    aCtion غير متواجد حالياً


  2. #2
    عضو شرف
    تاريخ التسجيل
    Apr 2002
    المشاركات
    1,379


    ممكن تحدد الجداول... وماهي الحقول.

    اذا كان هناك بينات على شمل مثال فسوف تسهل لنا فهم سؤالك(لم افهم)
    ارجو ان يكون هناك مثال على البينات التى لديك





    __________________
    ضيف الله العتيبي مبرمج حر و مهندس معتمد من زيند (ZCE)
    الاتصال: daif@daif.net او جوال: 0556639884
    الخدمات: تقديم استشارات برمجيه, تطوير بوابات/خدمات إلكترونيه للقطاع العام او الخاص .
    daif غير متواجد حالياً

  3. #3
    عضو جديد
    تاريخ التسجيل
    Nov 2003
    المشاركات
    24


    جدول درجات الطلاب ( table1 ) ويحتوى على حقول المواد و رقم الطالب واسمه و اسم الفرقه .

    لنفرض ان حقول المواد

    الماده الأولى : a1
    الثانيه : a2
    الثالثه : a3
    ......
    ....
    .....
    العاشره a10

    الدرجه النهائيه للماده 100 ودرجه النجاح 50

    ويوجد ايضا حقل رقم الطالب وهو حقل مشترك فى جميع الجداول الاخرى ولنفترض انه num

    وحقل اسم الطالب ولنفرض انه name

    ويوجد حقل اسم الفرقه ويحتوى على قيمه من 4 قيم

    (kg1 ) وهي الفرقه الاولى
    (kg2 ) وهي الفرقه الثانيه
    (kg3 ) وهي الفرقه الثالثه
    (kg4 ) وهي الفرقه الرابعه

    فاريد عمل استعلام لعرض درجات الطلاب الراسبين في مادتين لفرقة واحدة

    يعني عاوز اعرض درجات الطلاب الراسبين فى مادتين فقط وليكن فى الفرقه الاولى مثلا

    وايضا اريد عرض درجات الطلاب الراسبين في أكثر من مادتين لفرقة واحدة





    __________________
    هل تريد افلام فلاشيه احترافيه لموقعك ؟؟

    تصميمات مواقع احترافيه , تصميم فلاش احترافى بجميع انواعه , تصاميم جرافيك احترافيه

    ارسعار لا تقارن...
    aCtion غير متواجد حالياً

  4. #4
    عضو شرف
    تاريخ التسجيل
    Apr 2002
    المشاركات
    1,379


    group هو اسم حقل المجموعه

    في هذه المثال سوف يتم عرض بينات الطلاب الراسبين في مادتين اي كان نتج مادتين اقل من 50 درجه (اذا كانت كل الدرجات 50 فسوف يحسب ناجح) , وسيتم عرض الطلاب التابعين للمجموعه kg1 .
    كود PHP:
    SELECT FROM table WHERE (a1+a2+a3+a4+a5+a6+a7+a8+a9+a10 400) AND
     (
    a1+a2+a3+a4+a5+a6+a7+a8+a9+a10 350) AND group='kg1'
    الإستعلام الثاني سهل وسوف يتم فيه عرض الطلاب الراسبين في ماده فما فوق والتابعين للمجموعه kg1
    كود PHP:
    SELECT FROM table WHERE (a1+a2+a3+a4+a5+a6+a7+a8+a9+a10 500) AND group='gk1'






    __________________
    ضيف الله العتيبي مبرمج حر و مهندس معتمد من زيند (ZCE)
    الاتصال: daif@daif.net او جوال: 0556639884
    الخدمات: تقديم استشارات برمجيه, تطوير بوابات/خدمات إلكترونيه للقطاع العام او الخاص .
    daif غير متواجد حالياً

  5. #5
    عضو جديد
    تاريخ التسجيل
    Nov 2003
    المشاركات
    24


    شكرا جزيلا اخى daif على اهتمامك

    ولكن للاسف ليس هذا حلا عمليا لماذا؟

    فاريد عمل استعلام لعرض درجات الطلاب الراسبين في مادتين لفرقة واحدة

    هذا هو السؤال واعتقد انه من الخطأ تحديد الراسبين فى المادتين عن طريق المجموع حيث انه من الممكن ان يزيد مجموع بعض الطلاب عن 400 ومع ذلك يكون راسبون فى مادتين او اكثر

    فقد كنت اريد عمل هذا الاستعلام بطريقه احترافيه لانه فى الحقيقه يوجد حل عن طريق استعلام كبير وفيه نورد احتمال رسوب الطالب فى كل مادتين وبالتالى سيكون حجم الاستعلام كبير تقريبا 8 * 8 = 64

    فهل من حل اخر ؟





    __________________
    هل تريد افلام فلاشيه احترافيه لموقعك ؟؟

    تصميمات مواقع احترافيه , تصميم فلاش احترافى بجميع انواعه , تصاميم جرافيك احترافيه

    ارسعار لا تقارن...
    aCtion غير متواجد حالياً

  6. #6
    عضو شرف
    تاريخ التسجيل
    Apr 2002
    المشاركات
    1,379


    بالنسبه لي السؤال صعب جدا
    صحيح الحل السابق خطأ لكن هنا حل الأخ صلاح

    كود:
     SELECT 
    (a1<50)+(a2<50)+(a3<50)+(a4<50)+(a5<50)+(a6<50)+(a7<50)+(a8<50)+(a9<50)+(a10<50)) = 2 AS result 
    FROM table WHERE group='kg1';
    إذا كانت مادتين فقط فالنتيجة
    كود PHP:
    +--------+
    result |
    +--------+
    |      
    |
    +--------+ 
    غير ذلك، سواء رسوب أكثر أو نجاح فإن النتيجة

    كود PHP:
    +--------+
    result |
    +--------+
    |      
    |
    +--------+ 
    ونفس الشيء مع الأخرى

    كود PHP:
    SELECT 
    (a1<50)+(a2<50)+(a3<50)+(a4<50)+(a5<50)+(a6<50)+(a7<50)+(a8<50)+(a9<50)+(a10<50)) >= AS result 
    FROM table WHERE group
    ='kg1'
    مادتي رسوب أو أكثر

    أعتقد هذه المره سيكون صحيح





    __________________
    ضيف الله العتيبي مبرمج حر و مهندس معتمد من زيند (ZCE)
    الاتصال: daif@daif.net او جوال: 0556639884
    الخدمات: تقديم استشارات برمجيه, تطوير بوابات/خدمات إلكترونيه للقطاع العام او الخاص .
    daif غير متواجد حالياً





ضوابط المشاركة

  • لا تستطيع إضافة مواضيع جديدة
  • لا تستطيع الرد على المواضيع
  • لا تستطيع إرفاق ملفات
  • لا تستطيع تعديل مشاركاتك
  •  

أضف موقعك هنا| اخبار السيارات | حراج | شقق للايجار في الكويت | بيوت للبيع في الكويت | دليل الكويت العقاري | مقروء | شركة كشف تسربات المياه | شركة عزل اسطح بالرياض | عزل فوم بالرياض| عزل اسطح بالرياض | كشف تسربات المياة بالرياض | شركة عزل اسطح بالرياض