2012-02-07 77 views
0

我将EMP表和以下值现在MySQL查询研究天

Emp_Id Emp_Name Subject  Dates 
001  Smith  Java   07-02-2012 
001  Smith  oracle  08-02-2012 
001  smith  C++   10-02-2012 
002  john  java   01-01-2012 
002  john  SE   10-01-2012 
002  john  c   10-01-2012 
001  smith  physics  04-01-2012 
001  smith  c#   07-02-2012 
001  smith  javascript 07-02-2012 

,因为我们可以在这里看到史密斯只研究了3个月月供月月 日和1,而约翰研究了一月只有2天。

我们如何计算任何员工的这一计数? 作为一个例子:输出应按照以下方式进行。

Emp_Id Emp_Name Month_Year No_Of_Days_Studied_In_Month 
001  smith  Feb12     3 
001  smith  Jan12     1 
002  john  Jan12     2 

回答

1

您可以GROUP BY YEAR(Dates), MONTH(Dates),做一个COUNT

TRY:

SELECT emp_id, 
     emp_name, 
     Date_format(DATE, '%b%y') AS dates, 
     COUNT(*) AS No_Of_Days_Studied_In_Month 
FROM emp 
GROUP BY Date_format(DATE, '%b%y'), emp_name 
ORDER BY emp.emp_id 
+0

我尝试过,但它不是给我适当的计数 – Java 2012-02-07 06:54:03

+0

请出示您的SQL尝试。 – xdazz 2012-02-07 06:55:12

+0

SELECT Emp.Emp_Name,COUNT(Emp.date),DATE_FORMAT(Emp.date,'%b%y')AS日期 FROM Emp GROUP BY DATE_FORMAT(Emp.date,'%b'),Emp.Emp_Name 如果我们有同一天的记录数,则此查询会给出错误的输出。 Plz查看我更新的Emp表值。 – Java 2012-02-07 09:20:38