我无法确定如何使此查询正常工作。我已经在阳光下尝试了一切以避免循环。
该表格包含ID
(pk),UserID
,BookID
,BookDate
(日期时间)和SellerID
。 UserID
和BookID
有重复的组合。
我正在尝试通过UserID
和BookID
检索具有最新BookDate
的不同记录。这很容易(下面),但我还需要为返回的记录检索ID
和SellerID
列。这就是我遇到麻烦的地方......
Select Distinct
UserID, CourseID, MAX(AssignedON)
From
AssignmentS
Group By
UserID, CourseID
每次添加联接时,我都会获得所有记录。我尝试过划船,存在,似乎什么都没有用。任何帮助将不胜感激!
答案 0 :(得分:0)
select userid,courseid,bookdate,sellerid from
(select userid,courseid,bookdate,sellerid,
row_number() over (partition by userid,courseid
order by bookdate desc) as RNUM
from yourtable where yourwhere)
where rnum = 1;
答案 1 :(得分:0)
[本] [1]
[1]:http://coding.feron.it/2012/08/mssql-having-maxid-id-problem-row_number-partition/博文详细介绍了如何使用多个表格进行此操作
答案 2 :(得分:0)
想出来。我只需要移动一点东西,这是完美的!
从(选择用户ID,标签,书本,卖家) 选择* row_number()over(按用户ID分区,courseid,按bookdate desc排序)作为RNUM 从yourtable到哪里) 其中rnum = 1;