منتدى فيجوال بيسك لكل العرب | منتدى المبرمجين العرب
[سؤال] انشاء حقل من نوع معين - نسخة قابلة للطباعة

+- منتدى فيجوال بيسك لكل العرب | منتدى المبرمجين العرب (http://vb4arb.com/vb)
+-- قسم : قسم قواعد البيانات (http://vb4arb.com/vb/forumdisplay.php?fid=40)
+--- قسم : قسم أسئلة قواعد البيانات تحت بيئة الـ.NET (http://vb4arb.com/vb/forumdisplay.php?fid=41)
+--- الموضوع : [سؤال] انشاء حقل من نوع معين (/showthread.php?tid=3740)



انشاء حقل من نوع معين - فانتسي ارت - 31-08-14

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

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

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

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

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



RE: انشاء حقل من نوع معين - m.sami.ak - 31-08-14

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


RE: انشاء حقل من نوع معين - vbnet - 31-08-14

.....

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


أولا البحث 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]

.....


RE: انشاء حقل من نوع معين - فانتسي ارت - 31-08-14

ربي يوفقك ... وينور طريقك Rolleyes


RE: انشاء حقل من نوع معين - فانتسي ارت - 01-09-14

بعد التعديل عليه بالحقول حقتي طلع الناتج كذا
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*************

أعتذر على كثرة الأسئلة ..
ولك مني أجمل التحايا والتقدير ..


RE: انشاء حقل من نوع معين - فانتسي ارت - 01-09-14

طبعا عندي حقل فيه رقم التخصص DepNum

نقول مثلا الاسلامية رقمه 1


RE: انشاء حقل من نوع معين - فانتسي ارت - 01-09-14

أحسنت أخي ..
بس اللي ابغاه شوي مختلف ..

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

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

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

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


RE: انشاء حقل من نوع معين - vbnet - 02-09-14

.....

ملحوظة لست محترف 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]
.....


RE: انشاء حقل من نوع معين - فانتسي ارت - 04-09-14

شكرا لك أخي ..

لاحظت في الكود الأول
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