2016-08-05 34 views
0

首先,我想从数据库中提取相关月份的日期。为此,我使用了以下查询,并且生成了以下输出。Mysql多个查询来计算月的值

代码

SELECT DISTINCT date as tot FROM attendance WHERE date LIKE '%2016-06%' 

输出

enter image description here

然后我需要获得从database.but日期时,我尝试的是,本employees,它给我总的一个日期只有我可以过来这个。这是我的代码。

SELECT DISTINCT date as days, COUNT(DISTINCT employee_id) as tot FROM attendance WHERE in_time != '' AND out_time != '' AND date LIKE '%2016-06%' 

enter image description here

回答

1

您需要使用group by。当您从select列表中忽略未包含在aggregate函数中的字段时,mysql只返回任意值。然后你就可以删除distinct

SELECT date as days, COUNT(DISTINCT employee_id) as tot 
FROM attendance 
WHERE in_time != '' AND out_time != '' AND date LIKE '%2016-06%' 
GROUP BY date 

每评论,什么数据类型是你的date场?假设它是一个日期,你可以删除like和使用yearmonth

AND Month(date) = 6 AND Year(date) = 2016 
+1

他为什么使用这样为什么不MONTH()和YEAR() –