从不同的表中获取日期和时间数据

时间:2013-06-07 03:06:52

标签: sql

我的数据库有三个表,

  • Studentdatastudentid , studentname
  • Assessmentdatastudentid, attemptedondate
  • Activitydatastudentid, date

每个表格行每天都会使用当前时间戳更新。

在识别方面需要帮助,Mostrecentdate列应该在比较来自两个不同表格和两个不同列的这些列attemptedondatedate之后获取日期。

预期输出应为,

Studentid   studentname      mostrecentdate
 1           abc            2013-06-01 12:05
 2           def            2013-05-02 02:03

我目前的查询是:

select 
    S.StudentId, S.StudentAccountName, 
    Max(D.attemptedondate, A.date) as MOSTRECENTTIME 
from 
    activitydata A
join 
    Studentdata S on A.StudentId = s.StudentID
join 
    Assessmentdata D on S.StudentID = D.StudentID
group by 
    S.StudentId, S.StudentAccountName
order by 
    MOSTRECENTTIME desc

1 个答案:

答案 0 :(得分:2)

您应该可以使用CASE

select S.StudentId,
    S.StudentAccountName,
    CASE WHEN Max(D.attemptedondate) >= Max(A.date) THEN Max(D.attemptedondate) 
         ELSE Max(A.date) END
     as MOSTRECENTTIME 
from activitydata A
    join Studentdata S on A.StudentId=s.StudentID
    join Assessmentdata D on S. StudentID =D. StudentID
group by S.StudentId,
    S.StudentAccountName
相关问题