Warning: file_get_contents(/data/phpspider/zhask/data//catemap/5/sql/77.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Sql 衍生当前贷款项目_Sql_Linq_Database Design_Deriving - Fatal编程技术网

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 };