我有三个MySql表:
用户 :UserId,UserName
测试 :TestId,TestName
通过 :PassId,UserId,TestId,DateTaken
我想返回一个表格,显示每个用户通过的最新测试的日期,例如
|--------|---------|---------|---------|---------|---------| |User |Test A |Test B |Test C |Test D |Test E | |--------|---------|---------|---------|---------|---------| |James |Null |6/3/11 |Null |Null |4/3/11 | |Mark |Null |1/4/11 |8/5/11 |23/5/10 |Null | |--------|---------|---------|---------|---------|---------|
在此示例中,James从未通过测验A,C或D。他可能参加了测验B几次,但最新一次是在11/6/3。
我计划在ASP.NET GridView中显示此数据。最好的方法是什么-可以在SELECT语句中完成吗?请帮忙!
提前谢谢了。
select u.username, max(case when testid = 1 then datetaken else null end) as A, max(case when testid = 2 then datetaken else null end) as B, max(case when testid = 3 then datetaken else null end) as C, max(case when testid = 4 then datetaken else null end) as D, max(case when testid = 5 then datetaken else null end) as E from users as u left join passes as p on u.userid = p.userid group by u.userid