الفريق العربي للبرمجةأرشيف المنتديات · 2000 – 2023
نسخة أرشيفية للقراءة فقط — التسجيل والمشاركة مغلقان، والمحتوى محفوظ كما كان.

أحتاج انشاء علاقة بين جدول الأب وجدول الأبناء

بدأه code01 في 30 أبريل 2016 · 4 رد · 980 مشاهدة · في قواعد بيانات Microsoft SQL Server
مشاركة: واتساب X فيسبوك تيليجرام
#1 صاحب الموضوع

السلام عليكم 

لدي جدولين 

الجدول الأول : Patients

بيانات الجدول :

ID

Name

Address

Email

Mobile

IDNumber  رقم هوية المريض

 

الجدول الثاني : Children

ID

Name

IDNumber رقم هوية الابن / البنت / الزوجة - التابعين للمريض في الجدول الاول(Patients)

مطلوب مني اذا عبيت الجدول الاول (Patients) أقوم بإضافة تابعين لهذا المريض 

 

مثال:

 

اذا عبيت في الجدول الاول ما يلي :

ID             10

Name احمد عبدالله احمد

Address مكة

Email something

Mobile 123456

IDNumber 1111111

هنا اكملت بيانات المريض والمطلوب اني اضيف تابعين لهذا المريض ويجب إكمال ذلك كما يلي :

اسم المريض التابع : 

رقم الهوية :

صلة القرابة : ابن / بنت / زوجة 

ثم حفظ

 

المطلوب : استعلام .. يجيب لي اسم المريض مع بياناته كاملة و أيضا يجيب لي التابعين لهذا المريض (ابن/بنت/ زوجة ...الخ)

#2

اولا اقراء في الdatabase self relation لا نهذا سيساعدك كثيرا ثم اخبرنا بما فهمت خت نكمل علي اساس صحيح

#3

كلفت على نفسك 

#4

السلام عليكم ورحمه الله وبركاته

create view

واعمل realation زي الي في الصوره ما بين ال idnumber

وقم باظهار البيانات الي تريدها من الجدول الاول

 

او ممكن تكتب الكود ده في ال view

SELECT        dbo.patients.id, dbo.patients.adress, dbo.patients.email, dbo.patients.name, dbo.patients.mobile
FROM            dbo.childrens INNER JOIN
                         dbo.patients ON dbo.childrens.idnumber = dbo.patients.idnumber

 

Capture.PNG

#5

عليكم السلام 

يمكنك استخدام هذا الكوايري

CREATE VIEW [dbo].[VwFamily]
AS

SELECT	A.[Name]		,
		A.mobile		, 
		A.[Address]		,
		A.Email			,
		A.IDNumber		,
		(SELECT COUNT(B.[Name]) FROM [dbo].[Children] B WHERE A.IDNumber = B.IDNumber)  AS NoOfChiled,
		STUFF(
				(	SELECT		space(3) 
							+	CAST(ROW_NUMBER() OVER (ORDER BY B.[Name]) AS NVARCHAR(3))
							+	'-'
							+	B.[Name]
					FROM [dbo].[Children] B  
					WHERE A.IDNumber = B.IDNumber	FOR XML PATH(''), TYPE
				).value('.','NVARCHAR(MAX)'),1,2,' '
			 ) AS ChiledName
FROM [dbo].[Patients] A

هذه صورة الكود من جهازي

 

pic1.JPG

RESULT.JPG

مواضيع مشابهة