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

الحصول علي بيانات باستخدام MAX

بدأه محمد فؤاد تركي في 11 مايو 2011 · 2 رد · 386 مشاهدة · في قواعد بيانات Microsoft SQL Server
مشاركة: واتساب X فيسبوك تيليجرام
#1 صاحب الموضوع

الساده الزملاء

أريد أن أحصل علي أعلي قيمة موجوده في حقل اسمة Serial فقمت بكتابة Script أدناه ولم يعطني المطلوب لكن أعطاني النتيجة كما في الصورة

SELECT     dbo.Employee.EmpCode, dbo.Employee.EmpEnFulName, dbo.Job.JobName, dbo.OrgStrucutreDET.unitName, dbo.Employee.CompCode, 
                      dbo.EmpContract.ContStDate, dbo.EmpContract.ContEndDate,max(dbo.EmpContract.Serial)as Serial
FROM         dbo.Employee INNER JOIN
                      dbo.EmpContract ON dbo.Employee.EmpCode = dbo.EmpContract.EmpCode AND 
                      dbo.Employee.CompCode = dbo.EmpContract.CompCode LEFT OUTER JOIN
                      dbo.Job ON dbo.Employee.CompCode = dbo.Job.CompCode AND dbo.Employee.Jobcode = dbo.Job.JobCode LEFT OUTER JOIN
                      dbo.OrgStrucutreDET ON dbo.Employee.CompCode = dbo.OrgStrucutreDET.CompCode AND 
                      dbo.Employee.DepartmentCode = dbo.OrgStrucutreDET.UnitPath

WHERE      

(dbo.Employee.EmpCode = '3872')
 and (dbo.Employee.CompCode = '001')

group by      

dbo.Employee.EmpCode, dbo.Employee.EmpEnFulName, dbo.Job.JobName, dbo.OrgStrucutreDET.unitName, dbo.Employee.CompCode, 
                      dbo.EmpContract.ContStDate, dbo.EmpContract.ContEndDate,dbo.EmpContract.Serial

post-46243-092059200 1305101804_thumb.jp
المرفقات
11-05-2011 10-12-46 AM.jpg

certifiedj.jpg

 

 

Image Hosted by ImageShack.us
#2

السلام عليكم

المشكلة هي في group by وبالذات من التواريخ فكما ترى ان النتائج صحيحة حسب التواريخ اي ان الاستعلام جلب اعلى قيم حسب التاريخ .

الحل

1- ازلة التواريخ من group by ووضع max عليها ان امكن ذلك خاصةاذا كان كان اكبر serial يتناسب مع اكبر تاريخ .

2-اضافة استعلام فرعي

اي اضف الاستعلام التالي لجملة الشرط في الاستعلام

 
and serial in (
select max(serial) from  dbo.EmpContract 
where (EmpCode = '3872')
 and CompCode = '001')

)
#3

تمام يا استاذنا

شكراً

certifiedj.jpg

 

 

Image Hosted by ImageShack.us

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