2011-08-31 59 views
-3

我在SQL Server中有一個表,名爲「surname」和「Date」(DateTime)的列。該表是用於休假請求。我如何構建一條SQL語句來查看每天會有多少人失蹤?問題是,這個查詢不會告訴我,實際上有8人將在9月2日失蹤。例如,給出以下數據:根據日期確定計數

surname Date  Duration 
------- ---------- --------- 
Bertram 2011-09-01  3 
Coulois 2011-09-01  5 
LeBlanc 2011-09-01  6 
Fosters 2011-09-01  3 
Blanche 2011-09-01  2 
Bertram 2011-09-02  6 
Gillian 2011-09-02  4 
Pikklar 2011-09-02  7 
Thierry 2011-09-03  6 
Selanne 2011-09-03  6 

或者

CREATE TABLE #VRs(surname NVARCHAR(32), [Date] DATETIME); 

INSERT #VRs SELECT 'Bertram','2011-09-01' 
    UNION ALL SELECT 'Coulois','2011-09-01' 
    UNION ALL SELECT 'LeBlanc','2011-09-01' 
    UNION ALL SELECT 'Fosters','2011-09-01' 
    UNION ALL SELECT 'Blanche','2011-09-01' 
    UNION ALL SELECT 'Bertram','2011-09-02' 
    UNION ALL SELECT 'Gillian','2011-09-02' 
    UNION ALL SELECT 'Pikklar','2011-09-02' 
    UNION ALL SELECT 'Thierry','2011-09-03' 
    UNION ALL SELECT 'Selanne','2011-09-03'; 

我想要的結果如下:

Date Count 
----- ----- 
1 Sep  5 
2 Sep  3  
3 Sep  2 

任何想法如何處理呢?

+0

我已經在修改後重新開放。不幸的是,我無法對降薪提出任何建議。 – Will

回答

0
SELECT CONCAT(DAYOFMONTH(`date`), ' ', LEFT(MONTHNAME(`date`), 3)) AS Date, 
     COUNT(surname) AS Count FROM `#VRs` GROUP BY Date 

這裏,CONCAT用於合併日期和月份名稱的前三個字母。

0

嗯,你可以通過簡單的日期假期組的請求,並返回行數爲每一個日期,如果我不缺任何東西:

SELECT 
    [Date], 
    COUNT(*) AS [Count] 
FROM #VRs