منتدى فيجوال بيسك لكل العرب | منتدى المبرمجين العرب

نسخة كاملة : انشاء حقل من نوع معين
أنت حالياً تتصفح نسخة خفيفة من المنتدى . مشاهدة نسخة كاملة مع جميع الأشكال الجمالية .
حبايبي سؤالي مجنني ولا اعرف له طريقة للوصول للحل أتمنى مساعدتي..

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

المهم أنا اريد تكوين جدول ثالث بحيث تكون فيه المدرسة وعدد المعلمين المسجلين في المدرسة
اسم المدرسة **********عدد المعلمين
مدرسة أبو بكر الصديق********10

كيف ممكن أخلي الحقل يعمل count ..

بلييييييز ساعدوني ...
محتاج هالفكرة ضروري ..
وضح الفكرة اكثر هل تريد جمع عمود من نوع نص مع اخر من نوع نص ؟؟
ام رقم ونص ؟؟
.....

منقول مع تعديل بسيط ليناسب طلبك


أولا البحث SELECT يكون على جدول المعلمين، ويكون الناتج حقلين حددنا اسمائهما من عندنا أحدهم اسم المدرسة SchoolName والأخر عدد المعلمين TeacherCount

ثانياً نربط بجدول المدارس INNER JOIN لنأخذ منه اسم المدرسة بدلالة رقمها من رقم المدرسة في جدول المعلمين

ثالثاً نحدد المجموعة GROUP بالحقول BY وهنا يجب أن تكون الحقول موجود في البحث الأساسي في SELECT

رابعاً نحدد الترتيب ORDER بالحقول BY وهنا اخترنا اسم المدرسة لترتب أبجدياً الموجود طبعاً في البحث الأساسي في SELECT

كود :
SELECT [Schools].[SchoolName] AS [SchoolName]
     , COUNT([Teachers].[SchoolID]) AS [TeacherCount]

FROM [Teachers]

INNER JOIN [Schools]
ON [Schools].[ID] = [Teachers].[SchoolID]

GROUP BY [Teachers].[SchoolID]
       ,  [Schools].[SchoolName]

ORDER BY [Schools].[SchoolName]

.....
ربي يوفقك ... وينور طريقك Rolleyes
بعد التعديل عليه بالحقول حقتي طلع الناتج كذا
PHP كود :
SELECT [schtbl].[schname] AS [SchName]
 , 
COUNT([tchtbl].[schnum]) AS [TeacherCount]
 
FROM [tchtbl]

INNER JOIN [schtbl]
ON [schtbl].[schnum]  = [tchtbl].[schnum]  

GROUP BY [tchtbl].[schnum] ,  [schtbl].[schname]

ORDER BY [schtbl].[schname

أريد أخي اضافة حقل جديد معها ممكن ....
أريد اضافة حقل تخصص المعلم

اسم المدرسة ****** عدد المعلمين الاجمالي * عدد معلمي تخصص التربية الاسلامية
مدرسة المعتصم ***********10**********************3*************

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

نقول مثلا الاسلامية رقمه 1
أحسنت أخي ..
بس اللي ابغاه شوي مختلف ..

أنا اريد الخيار الأول
عدد المعلمين في كل مدرسة ( يضاف عليه ) عدد المعلمين في المدرسة في تخصص ما

قصدي أكثر من inner join

اسم المدرسة ****** عدد المعلمين الاجمالي **** عدد (اسلامي) ****عدد(عربي )

سووووووري اتعبتك معي Blush
.....

ملحوظة لست محترف Sql ولكن اجتهاد ولم أجد لك نفس طلبك

لمادة واحدة بتحديد رقمها في depnum@

كود :
SELECT [schtbl].*
, ( SELECT COUNT([tchtbl].[tchnum])
    FROM [tchtbl]
    WHERE [tchtbl].[schnum] = [schtbl].[schnum]
  ) AS [TchCount]

, ( SELECT [deptbl].[depname]
    FROM [deptbl]
    WHERE [deptbl].[depnum] = @depnum
  ) AS [DepName]

, ( SELECT COUNT([tchtbl].[tchnum])
    FROM [tchtbl]
    WHERE [tchtbl].[schnum] = [schtbl].[schnum]
      AND [tchtbl].[depnum] = @depnum
  ) AS [DepCount]

FROM [schtbl]


لمادتين حيث تحدد رقم المادة الأولى في depnum1@ ورقم المادة الثانية في depnum2@
كود :
SELECT [schtbl].*
, ( SELECT COUNT([tchtbl].[tchnum])
    FROM [tchtbl]
    WHERE [tchtbl].[schnum] = [schtbl].[schnum]
  ) AS [TchCount]

, ( SELECT [deptbl].[depname]
    FROM [deptbl]
    WHERE [deptbl].[depnum] = @depnum1
  ) AS [DepName1]

, ( SELECT COUNT([tchtbl].[tchnum])
    FROM [tchtbl]
    WHERE [tchtbl].[schnum] = [schtbl].[schnum]
      AND [tchtbl].[depnum] = @depnum1
  ) AS [DepCount1]

, ( SELECT [deptbl].[depname]
    FROM [deptbl]
    WHERE [deptbl].[depnum] = @depnum2
  ) AS [DepName2]

, ( SELECT COUNT([tchtbl].[tchnum])
    FROM [tchtbl]
    WHERE [tchtbl].[schnum] = [schtbl].[schnum]
      AND [tchtbl].[depnum] = @depnum2
  ) AS [DepCount2]

FROM [schtbl]
.....
شكرا لك أخي ..

لاحظت في الكود الأول
PHP كود :
SELECT [schtbl].[schname] AS [SchName]
 , 
COUNT([tchtbl].[schnum]) AS [TeacherCount]
 
FROM [tchtbl]

INNER JOIN [schtbl]
ON [schtbl].[schnum]  = [tchtbl].[schnum]  

GROUP BY [tchtbl].[schnum] ,  [schtbl].[schname]

ORDER BY [schtbl].[schname

أن الناتج يعرض فقط المدارس المدخلة وهذا ما اريده

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

أنا عندي عشر مدارس أدخلت ست مدارس
اريد label يكون فيه عدد السجلات (بعدد المدارس المدخلة لبيانات المعلمين وهو (6) ) بالنسبة للكود السابق

....

وكذلك أريد عرض المدارس التي لم تدخل البيانات في ((((جدول آخر))))
طبعا وفي اسفلها label المدارس التي لم تدخل = 4

تحياتي Shy