Вземете брой от MySQL таблица, която е добавена на или преди дата и изтрита на или след дата

Аз съм много нов в SQL и не знам много

ТАБЛИЦА 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, addDate = 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, моля, помогнете ми с тази заявка. Какви промени трябва да се направят, за да бъде тази заявка правилна?


person Abhilash PS    schedule 08.08.2012    source източник
comment
Отчитате ли служител, който се е регистрирал на/преди определена дата, както и служител, който е бил изтрит след определена дата? Или включвате служител, който се е регистрирал на/преди дата И е бил изтрит след определена дата?   -  person Holger Brandt    schedule 09.08.2012
comment
@HolgerBrandt, Втори случай: Служител, който едновременно се е регистрирал на/преди дадена дата И е бил изтрит след определена дата   -  person Abhilash PS    schedule 09.08.2012


Отговори (2)


Вашите <= и >= са грешни.

Искам да получа броя служители, които са регистрирани на или преди определена дата и изтрити на или след определена дата и pfStatus = 0.

Опитайте тази:

SELECT COUNT(*)
FROM employee_table
WHERE pfStatus = 0
AND addedDate <= '2012-07-07'
AND deletedDate >= '2012-08-09';
person Mark Byers    schedule 08.08.2012
comment
+1 Забележка: той пак ще получи брой 0, тъй като примерните данни added_date не отговарят на условията на клауза WHERE. - person D'Arcy Rittich; 09.08.2012
comment
@Mark Byers, благодаря ви за отговора, но както каза RedFilter, все още получавам стойността 0 - person Abhilash PS; 09.08.2012
comment
@abhips: Той също така обясни защо... вашите данни не отговарят на условията. Вашият проблем не е, че заявката е неправилна. Имате лоши данни от теста. - person Mark Byers; 09.08.2012

Това ще ви даде служителите, които ще са били активни в периода между 2012-07-07 - 2012-08-09.

ИЗБЕРЕТЕ БРОЙ(*)
ОТ Employee_table
WHERE pfStatus = 0
AND addedDate ‹= '2012-08-09'
AND deletedDate >= '2012-07- 07';

person arunondeck    schedule 10.08.2012