2014-12-30 45 views
1

我有一个表格“报告”,其中包含相关列“日期”,“医生”。每位医生在整个表格中出现好几次。下面的代码是我目前所拥有的:DATEDIFF最近一次记录的当前日期

SET @variable = (SELECT Date FROM Report WHERE Doctor='DocName' ORDER BY Date DESC LIMIT 1) 
SELECT DATEDIFF(CURDATE(),@variable) AS DiffDate 

这给了我一个医生的DATEDIFF,没有名字。是否有任何方法循环查看表格,找到每位医生的最后一行/日期,然后对每位医生执行一次DATEDIFF,在他们旁边输出DATEDIFFs(对照当前日期)的医生列表?

提前致谢!

回答

1

您可以使用GROUP BY得到每名医生和最大只有1行选择最新日期:

select `Doctor`, DATEDIFF(CURDATE(),max(`Date`)) 
from `Report` 
group by `Doctor` 
+0

非常感谢!如果我有代表的话,我会高兴的!最后,我不得不在select和from lines之间添加“AS DiffDate”,以便实际显示查找的数据而不是空列。 – Xerakon

相关问题