2012-08-08 63 views
1

我非常新的SQL,我不知道很多从MySQL表中获取指望它增加了在某日期或之前在某日期或之后删除

employee_table包含以下几列

`pkId` INT(10), 
`name` VARCHAR(60), 
`pfStatus` TINYINT(3), 
`is_active` TINYINT(3), 
`addedDate` DATE, 
`deletedDate` DATE 

和条目是有具有给定值

PKID = 1,名字= abhips,pfStatus = 0,IS_ACTIVE = 1,addedDate = 2012-08-08,deletedDate = 2012-08-18

-

SELECT COUNT(*)FROM employee_table WHERE pfStatus = 0 AND addedDate> = '2012-07-07' AND deletedDate < = '2012-08-09';

我想谁登记或某个特定日期之前和删除或某一特定日期后pfStatus = 0

的员工数量,但我得到的计数为0,而不是1,请帮助我使用此查询,获取此查询所做的更改是否正确?

+0

您是否正在计算在特定日期之前/之前注册的员工以及在特定日期之后被删除的员工?或者您是否包括在某个日期之前注册并在某个日期之后被删除的员工? – 2012-08-09 00:00:16

+0

@HolgerBrandt,第二种情况:在某个日期之前注册的员工和在特定日期之后被删除的员工 – abhips 2012-08-09 08:11:32

回答

3

您的<=>=是错误的方法。

我想员工谁是注册在某一特定日期或之前和之后的特定日期删除,pfStatus = 0

试试这个数目:

SELECT COUNT(*) 
FROM employee_table 
WHERE pfStatus = 0 
AND addedDate <= '2012-07-07' 
AND deletedDate >= '2012-08-09'; 
+1

+1注意:由于样本数据“added_date”不符合WHERE,他仍会得到0的计数条款条件。 – RedFilter 2012-08-08 21:19:30

+0

@Mark Byers,感谢您的回复,但RedFilter表示我仍然收到价值0 – abhips 2012-08-08 21:32:52

+0

@abhips:他还解释了为什么......您的数据与条件不符。您的问题不是查询不正确。你有不好的测试数据。 – 2012-08-08 21:35:31

1

这会给你在2012-07-07 - 2012-08-09期间一直活跃的员工。

SELECT COUNT(*)
FROM employee_table
WHERE pfStatus = 0
AND addedDate < = '2012-08-09'
AND deletedDate> = '2012-07-07';

相关问题