我有一份報告,看起來是這樣的:SQL:如何選擇早到行
CompanyA Workflow27 June5
CompanyA Workflow27 June8
CompanyA Workflow27 June12
CompanyB Workflow13 Apr4
CompanyB Workflow13 Apr9
CompanyB Workflow20 Dec11
CompanyB Wofkflow20 Dec17
這與SQL(特別是T-SQL版本的服務器2005)完成:
SELECT company
, workflow
, date
FROM workflowTable
我希望報告只顯示每個工作流程的最早日期:
CompanyA Workflow27 June5
CompanyB Workflow13 Apr4
CompanyB Workflow20 Dec11
任何想法?我無法弄清楚這一點。我試過使用一個嵌套select來返回最早的托盤日期,然後在WHERE子句中設置它。如果只有一個公司,這很好用:
SELECT company
, workflow
, date
FROM workflowTable
WHERE date = (SELECT TOP 1 date
FROM workflowTable
ORDER BY date)
但是,如果該表中有多個公司,這顯然不起作用。任何幫助表示讚賞!
爲什麼WITH命令在它之前有一個分號?我在其他幾次見過這種情況,起初一直認爲這是我正在查看的人的代碼的錯字 – 2016-07-21 16:01:57
預防性慣例。 WITH * must *是語句中的第一句,SQL Server不強制所有以分號結尾的語句。 – 2016-07-21 16:04:00