PDA

View Full Version : select بزرگترین تاریخ و متمایز در دو جدول



hnosen
یک شنبه 08 اسفند 1389, 23:04 عصر
با سلام
من دوتا جدول دارم یکی به اسم person و Bime .

person=Id,Name,Family
Bime=Num,StartDate,EndDate,Fish,Id_p

که در جدول اول اطلاعات شخصی هر فرد نگه داشته می شود.و در جدول دوم یعنی بیمه تاریخ شروع بیمه.تاریخ پایان بیمه .شماره فیش بیمه نگه داشته میشود
و Id_p کلید خارجی در جدول بیمه است . و هرفرد میتواند هر چندبار بیمه شود.

سوال:دستوری که بزرگترین تاریخ اتمام بیمه EndDate هر فرد با مشخصات کامل یعنی همه فیلدهای دو جدول را بصورت متمایز برگرداند؟همه افراد درجدول person را بیاورد چه در جدول بیمه باشد چه نباشد ؟ یعنی دو رکورد مربوط به یک نفر را بر نگرداند.فقط رکورد مربوط به بزرگترین تاریخ اتمام بیمه؟


از جوابتان ممنون.

ahmad_eagle2002
دوشنبه 09 اسفند 1389, 14:03 عصر
فکر میکنم این کد کمکتون کنه


createtable person(id int,[name] nvarchar(50),family nvarchar (50))
createtable Bime(num int,StartDate datetime,EndDate datetime,fish int,id_p int);
go
insertinto person(id,name,family)values(1,'ahmad','eagle');
insertinto person(id,name,family)values(2,'ahmad1','eagle1');
insertinto person(id,name,family)values(3,'ahmad2','eagle2');
insertinto person(id,name,family)values(4,'ahmad3','eagle3');
insertinto person(id,name,family)values(5,'ahmad4','eagle4');

insertinto bime values(1,getdate(),GETDATE(),1200,1)
insertinto bime values(2,dateadd(month,-2,getdate()),GETDATE(),1201,1)
insertinto bime values(3,dateadd(month,-3,getdate()),GETDATE(),1202,2)
insertinto bime values(4,dateadd(month,-7,getdate()),dateadd(month,2,getdate()),1203,3)


select*from person leftouterjoin bime on person.id=bime.id_p
where num in(select num from(selectmax(num) num,id_p from bime
groupby id_p) temp)