2012-08-08 132 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';

相關問題