2016-10-04 45 views
3

我有一個包含admission_date和student_status列的學生表,我想獲得特定年份的每個月的全部入場許可,而admission_date列類型是DateTime。即如何獲取特定月份的數據sql

**Month**  **Total_Admission** 
Jan-2016    90 
Feb-2016    70 
Mar-2016    109 

回答

0

與下面的查詢嘗試。

SELECT replace(right(convert(varchar, admission_date, 106), 8), ' ', '-') Month,COUNT(*) TotalAdmissions 
FROM yourTable 
WHERE YEAR(admission_date) = 2016 
GROUP BY replace(right(convert(varchar, admission_date, 106), 8), ' ', '-') 
0

您可以使用extract(year_month...檢索每月統計。事情是這樣的:

SELECT 
    extract(year_month FROM date(admission_date)) month, 
    count(*) total_admission 
FROM your_table; 
0

嘗試這樣做:

SELECT COUNT(*) AS admission_total 
FROM yourTable 
GROUP BY MONTH(admission_date) 
0

試試這個:

SELECT LEFT(DATENAME(MONTH,admission_date),3)+'-2016' as MonthNumber,COUNT(*) TotalAdmissions 
FROM TableName 
WHERE YEAR(admission_date) = 2016 
GROUP BY LEFT(DATENAME(MONTH,admission_date),3)+'-2016' 
+0

其獲得每個日期的招生,但我想,因爲它不是在聚合函數或GROUP BY子句中包含每個月 –

+0

列「Student.admission_date」在選擇列表中無效。 –

+0

是的,我已經嘗試過,但我可以得到它像jan-2016 –

相關問題