2014-12-30 48 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

相關問題