急求sql查询语句!
急求sql语句!
a、b两表,定义如下:
a表:
PersonID(varchar,主键),PersonName(varchar)
b表:
PersonID(varchar,外键),CheckDay(smalldatetime)
逻辑关系:
a表中的一个PersonID,在b表中有一条或多条对应记录,这些记录的CheckDay必定不同。
sql语句要求:
假设a表有数据:
PersonID PersonName
001 张三
002 李四
b表有数据:
PersonID CheckDay
001 2004-01-02
001 2005-02-25
001 2005-03-30
002 2005-01-20
现需得出如下记录集:
PersonID PersonName CheckDay
001 张三 2005-03-30
002 李四 2005-01-20
即b中只取对应的最后一条记录(根据日期判断)进行关联。
请达人指点,不胜感激!
问题点数:20、回复次数:4Top
1 楼paoluo(一天到晚游泳的鱼)回复于 2005-05-11 15:15:22 得分 12
Select A.*,CheckDay from A
Inner Join (Select PersonID,Max(CheckDay) As CheckDay from B Group By PersonID) C
On A.PersonID=C.PersonIDTop
2 楼sunlight539(阿不)回复于 2005-05-11 15:31:13 得分 5
Select A.*,CheckDay from A
Inner Join (Select top 1 PersonID,CheckDay from B Order By CheckDay Desc) C
On A.PersonID=C.PersonID
Top
3 楼kissoflife(明月高楼休独倚,酒入愁肠,化作相思泪!)回复于 2005-05-11 15:32:21 得分 0
楼上果然是达人,谢谢你多次帮我回答问题:)Top
4 楼yufenfeila(雨纷飞啦)回复于 2005-05-11 15:32:23 得分 3
SELECT b.PersonID, MAX(a.PersonName), MAX(b.CheckDay) AS CheckDay FROM a JOIN b ON a.PersonID=b.PersonID GROUP BY b.PersonIDTop




