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

طلب مساعدة في انشاء استعلام

بدأه khalaroy في 12 نوفمبر 2016 · 4 رد · 1,200 مشاهدة · في قواعد بيانات MySQL
مشاركة: واتساب X فيسبوك تيليجرام
#1 صاحب الموضوع

السلام عليكم

لدي جدولين

الاول به السجل المدني والاسم                        والثاني به السجل المدني ودرجة والشهر والسنة

اللمفتاح الرئيسي السجل المدني

ارغب باستخراج اسماء الموظفين الذين لم تسجل لهم درجات ف الجدول الثاني في شهر 1 مثلا وعام 1436

يعني اذاكان اجمالي عدد الموظفين 100  وتم تسجيل درجات 5 موظفين لشهر 1 وعام 1436

يضهر لي اسم 95 موظف لم تسجل لهم بيانات

SELECT        test.Month, test.Year, tblEmployees.National_ID_Pk, tblEmployees.Employee_Name
FROM            tblEmployees INNER JOIN
                             (SELECT        Employee_Vacation_ID_Pk, National_ID_Fk, Absence, Month, Year
                                FROM            tblEmployee_Vacations) AS test ON tblEmployees.National_ID_Pk = test.National_ID_Fk
WHERE        (test.Month = @Month) AND (test.Year = @Year)

 

 

هذا الأستعلام ابي تعديله

تم تعديل هذه المشاركة بواسطة khalaroy في 12 نوفمبر 2016 في 06:31

#2

try this code

SELECT        
		@Month as 'Month', 
		@Year as 'Year', 
		tblEmployees.National_ID_Pk, 
		tblEmployees.Employee_Name
FROM    
		tblEmployees 
	left JOIN
		(
			SELECT        
					National_ID_Fk
            FROM    
					tblEmployee_Vacations
			WHERE       
					(tblEmployee_Vacations.[Month] = @Month) 
				AND 
					(tblEmployee_Vacations.[Year] = @Year)
		) AS test 
	ON 
		tblEmployees.National_ID_Pk = test.National_ID_Fk
where
		(test.National_ID_Fk is null)
1▲ 1
#3

SELECT        @Month AS Month, @Year AS Year, tblEmployees.National_ID_Pk, tblEmployees.Employee_Name
FROM            tblEmployees LEFT OUTER JOIN
                             (SELECT        National_ID_Fk
                                FROM            tblEmployee_Vacations
                                WHERE        (Month = @Month) AND (Year = @Year)) AS test ON tblEmployees.National_ID_Pk = test.National_ID_Fk
WHERE        (test.National_ID_Fk IS NULL)

جزاك الله الف خير

هوذا

لكن نه يعرض كامل الموظفين ال 100 في أي شهر واي سنة

كيف اسويه اذا كان الجدول رقم 2 خالي لا يعرض ال 100 موظف من الجدول الاول

واذا كان الجدول رقم 2 فيه مثلا ادخال لموظف 1 فقط

يعرض 99

#4

ممكن توضح

#5

الاستعلام صحيح 100%

الجدول الاول فيه 100 موظف

اذا تم ادخال 5 موظفين في الجدول الثاني في شهر محرم عام 1438 هجري

عند تنفيذ الاستعلام في شهر محرم عام 1438 هجري  يطلع 95 موظف  وهذا صحيح

وعند الاستعلام في شهر صفر عام 1438 هجري   يطلع 100 موظف  لان الجدول الثاني فاضي null

انا مابيه يعرض 100 موظف بدياه يعرض null

واذا تم ادخال بيانات في الجدول الثاني يبدء ينفذ ويطلع اسماء الموظفين الي ماعندهمش سجلاث في الجدول الثاني

واضحه

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