Sql 衍生当前贷款项目
我有一张贷款信息表 例如:Sql 衍生当前贷款项目,sql,linq,database-design,deriving,Sql,Linq,Database Design,Deriving,我有一张贷款信息表 例如: _________________________________________________________________ |id|LoanDate|EquipmentId|FromUser|FromLocation|ToUser|ToLocation| |---------------------------------------------------------------| |1 |2012-1-1| 100 | NULL | 21
_________________________________________________________________
|id|LoanDate|EquipmentId|FromUser|FromLocation|ToUser|ToLocation|
|---------------------------------------------------------------|
|1 |2012-1-1| 100 | NULL | 219 | 605 | NULL |
|2 |2012-1-2| 100 | 605 | NULL | NULL | 219 |
|3 |2012-1-3| 100 | NULL | 219 | 509 | NULL |
-----------------------------------------------------------------
如您所见,用户605被借出设备一天,然后在第二天归还。然后,设备在第二天被借给了另一个用户
考虑到此表中有跟踪移动的条目(包括跨日期的返回),我将如何尝试查找当前拥有当前借出给他们的设备的用户
任何关于如何进行的想法都将不胜感激。伪代码、SQL或LINQ也可以
谢谢如果您按LoanDate降序排列贷款,然后按
EquipmentId
分组,则每组中的第一个元素将是其EquipmentId
的最新贷款。如果用户ID
不为空,则该ID为当前拥有设备的用户的ID
var items = from loan in loans
orderby loan.LoanDate desc
group loan by loan.EquipmentId into grp
let userId = grp.First().ToUser
where userId != null
select new { EquipmentId = grp.Key, UserId = userId };