Warning: file_get_contents(/data/phpspider/zhask/data//catemap/5/sql/76.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 - Fatal编程技术网

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

Sql 从不同的表中获取日期和时间数据,sql,Sql,我的数据库有三个表 Studentdata带列studentid,studentname Assessmentdata带列studentid,attemptedondate Activitydata带列studentid,date 并且每个表行都将使用当前时间戳每天更新 需要帮助识别,Mostrecentdate列应在比较两个不同表和两个不同列中的两列attemptedondate和date后获取日期 预期产出应为: Studentid studentname mostrece

我的数据库有三个表

  • Studentdata
    带列
    studentid,studentname
  • Assessmentdata
    带列
    studentid,attemptedondate
  • Activitydata
    带列
    studentid,date
并且每个表行都将使用当前时间戳每天更新

需要帮助识别,
Mostrecentdate
列应在比较两个不同表和两个不同列中的两列
attemptedondate
date
后获取日期

预期产出应为:

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

您应该能够使用
案例

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

日期字段是什么类型的?对于上面的查询,如果mostrecenttime列为null,我需要帮助从studentdata表获取所有studentid的列表。