Получить счетчик от общего числа сотрудников за период месяца в mysql - PullRequest
1 голос
/ 09 февраля 2020

У меня есть требование, чтобы получить число отдельных отделов с общим количеством сотрудников в период месяца, но, к сожалению, запрос не работает и выдает ошибку

Моя таблица

Department_id emloyee_id   date_time

  1             1          2020-02-01
  1             2          2020-02-04 
  3             7          2020-02-06
  1             4          2020-02-07

ожидаемый результат

total department=2
total employee of all department=4

Но все должно работать на основе последней записи, я получаю sql синтаксическая ошибка

Запрос:

SELECT COUNT(DISTINCT department_id) x, COUNT(*) y 
  FROM department 
 WHERE date_time>=DATE_FORMAT(NOW() ,'%Y-%m-01') 
   AND date_time<DATE(NOW()+INTERVAL 1 DAY and status='1'

Ответы [ 2 ]

3 голосов
/ 09 февраля 2020

Вы можете объединить их только в одном запросе:

SELECT COUNT(DISTINCT Department_id), COUNT(DISTINCT employee_id)
  FROM department  
 WHERE date_time >= NOW() - INTERVAL 1 MONTH
   AND status = '1';

, считая оба по-разному.

Обновление: Если вы хотите остаться в пределах текущего month , затем к этому запросу можно добавить

AND date_time>=DATE_FORMAT(NOW() ,'%Y-%m-01')

, как и в исходном запросе.

1 голос
/ 09 февраля 2020

Кажется, вы должны использовать месяц вместо дня и пропустить скобку после месяца

SELECT COUNT(DISTINCT department_id) AS departments,
       COUNT(*) AS employees
FROM department
WHERE date_time>=DATE_FORMAT(NOW() ,'%Y-%m-01')
AND date_time < DATE(NOW()+INTERVAL 1 MONTH)
AND status = '1';
...