تقييم الموضوع :
  • 0 أصوات - بمعدل 0
  • 1
  • 2
  • 3
  • 4
  • 5
عدد المدارس بالنسبة للمباني
#1
السلام عليكم ورحمة الله وبركاته .. وبعد .

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


مشكلتي :

أنا عندي جدول للمدارس 
وطبعا عندنا بعض المباني تحتوي على مدرستين ( ابتدائي + متوسط ) ..

الذي اريده حصر عدد المباني 
بحيث يظهر لي عدد المدارس الابتدائية فقط .. وكذلك عدد المدارس المتوسطة فقط وكذلك عدد المدارس التي تكون ابتدائي مع متوسط 

طبعا للتسهيل أنا وضعت رقم هوية المدير في كل مدرسة 
لما تكون المدرسة مجمع ( قصدي ابتدائي مع متوسط )  يكون مديرها واحد ( برقم هوية واحد )

أنا قدرت اسوي استعلام بعدد المدارس كلها بدون تكرار الهوية ( Distinct )
 وطلع معي العدد صحيح بس هذا كان إجمالاً 

أنا أريد التفصيل
عدد المدارس الابتدائية فقط .. 
سويت هذا الاستعلام 

كود :
SELECT        COUNT(DISTINCT userid) AS Count
FROM            schtbl
(WHERE        (stgnum = 1)

عرض لي جميع مدارس الابتدائيات حتى لو كان معها متوسط 

أنا أريد ان تكون ابتدائية فقط بدون متوسط 

userid: رقم هوية المدير
stgnum : المرحلة   1. ابتدائي   2. متوسط   3. ثانوي


آمل أن تكون الفكرة وضحت 

وجزيتم خيراً
الرد }}}
تم الشكر بواسطة:
#2
جملة الاستعلام التي استخدمتها اعتقد صحيحه ومن المفترض ان ترجع لك عدد المدارس الابتدائية فقط ، لماذا تستخدم عدم تكرار رقم المدير يعني هل المدير ممكن يكون مديرا لاكثر من مدرسه او مجمع .
الرد }}}
تم الشكر بواسطة: فانتسي ارت
#3
في حل اسهل من كده
ضيف 3 حقول في جدول المدارس الحقل الاول ابتدائي والحقل التاني متوسط والحقل التالت ثانوي
اجعل الحقول من النوع y / n
وتقوم بأختيار المرحله للمدرسه اذا كانت ابتدائي فقط ستجعل قيمة الحقل ابتدائي ب Yes والحقلين الاخرين ب No
اذا كانت متوسط فقط ستجعل قيمة الحقل متوسط ب Yes والحقلين الاخرين ب No
اذا كانت ابتدائي و متوسط ستجعل قيمة الحقلين ابتدائي و متوسط ب Yes والحقل الاخر ب No
وهكذا يمكنك الاستعلام كما تريد
يعني لو عايز الاستعلام يرجع بعدد المدارس الابتدائي هتبحث في الجدول عن عدد السجلات التي قيمة حقل الابتدائي بها yes
لو عايز الاستعلام يرجع بعدد المدارس متوسط هتبحث في الجدول عن عدد السجلات التي قيمة حقل متوسط بها yes
لو عايز الاستعلام يرجع بعدد المدارس ابتدائي و متوسط هتبحث في الجدول عن عدد السجلات التي قيمة حقل ابتدائي و متوسط بها yes
من خلال استخدام المعامل And في الاستعلام
الرد }}}
تم الشكر بواسطة: فانتسي ارت
#4
بيكون عندك الجداول التاليه : مجرد أقتراح مش أكثر
SchoolsTb
ID
SchoolName
SchoolType

---------------------
LevelsTb
ID
SchoolID
-------------------------
ClassesTb
ID
LivelID
StudentID
-------------------------
SubjectsTb
ID
LivelID
--------------------------
StudentsTb
ID
ClassID
Name
.

كمل الباقي الحقول حسب الحاجة
Abu Ehab : Microsoft Partner  & Systems Developer
 Youtube   Facebook    Twitter   
الرد }}}
تم الشكر بواسطة: العالمي , فانتسي ارت
#5
أشكر لكم تفاعلكم أحبتي

نعم يمكن أن يكون مدير لأكثر من مدرسة ( مدرستين في مبنى واحد )

بالنسبة لعدم تكرار رقم المدير .. يطلع لي الناتج صحيح لما استخدم عدم تكرار ( رقم المدير ) لجميع المدارس
بس لما أحدد مرحلة يطلع لي رقم المدير في المرحلة وهذا صحيح .. بس أبغاه لما يكون رقم المدير موجود في مرحلة أخرى ما ابيه يطلع في الحسبه ..

بالنسبة لوضع level المدارس تكون منفصلة في الأصل

أي لا يصح وضع مدرسة ( أ ) ابتدائي + متوسط

بل عند الاستعلام تكون ( أ - ابتدائي ) ( أ - متوسط )


أكرر شكري ..
الرد }}}
تم الشكر بواسطة:
#6
اخي الكريم ، انت وضحت بنية الجدول وهو يحتوي على حقلين واحد لرقم هوية المدير والآخر لرقم المرحلة ، طيب اكيد انك اذا عندما تضيف مدرستين في مبنى واحد (ابتدائي + متوسط) تضيفها في الجدول بشكل منفصل في سجلين منفصله هكذا :
رقم الهوية رقم المرحلة
12454357645 - 1
12454357645 - 2
اذا على حسب استعلامك الذي استخدمته لايحتاج الى فحص عدم التكرار لانك محدد شرط ان يكون رقم المرحله يساوي الرقم 1 , لابد ان يجلب الاستعلام لك عدد الابنية او المدارس الابتدائية فقط .
الرد }}}
تم الشكر بواسطة: فانتسي ارت
#7
أحسنت أخي

بس كمان اذا كان اللي رقمه موجود في متوسط ما ابغاه يظهر

أوضح اكثر
12454357645 - 1
12454357645 - 2
98787416545 - 1

الناتج الصحيح :
يحدد 98787416545 لأنه ليس مديرا للمتوسط فقط مدير للابتدائي
الرد }}}
تم الشكر بواسطة:
#8
يعني اذا كان المدير مديراً لمدرستين (ابتدائي+متوسط) لايظهر في إحصاء المدارس الابتدائية يجب ان يكون المدير مديراً لمدرسة ابتدائية فقط ، اذا كان هذا ماتريده فسيكون الاستعلام كالتالي :
كود :
Select Count(userid) as zCount From Schtbl Where stgnum = 1 And userid not in (Select userid From Schtbl Where stgnum = 2)
الرد }}}
تم الشكر بواسطة: فانتسي ارت
#9
إجابتك أخي أحمد صحيحة 100%  Shy

حقيقة تعجز الكلمات عن شكرك

أسأل الله عز وجل أن يكتب لك الأجر والمثوبة وأن يكتب لك الخير كله 
الرد }}}
تم الشكر بواسطة: Ahmed_Mansoor


المواضيع المحتمل أن تكون متشابهة .
الموضوع : الكاتب الردود : المشاهدات : آخر رد
  استعراض المدارس التي لم تدخل معلمين SQL فانتسي ارت 3 2,324 31-12-14, 10:25 AM
آخر رد: فانتسي ارت

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


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