【发布时间】:2020-06-05 01:08:42
【问题描述】:
尝试运行执行三件事的查询。我希望它:
- 获取每个用户在完成任务的当月赚取的金额 工作(完成日期)
- 统计数据库中的所有作业,如果它们是 当月提交(已提交)
- 统计当前用户在当月提交的所有作业(已提交)
我有以下
SELECT
SUM(case when j.Progress = 5 and (DateCompleted between DATE_FORMAT(NOW() ,'%Y-%m-01') AND NOW() ) then j.Amount else 0 end) as Earned,
(SELECT COUNT(*) FROM Jobs WHERE (Submitted between DATE_FORMAT(NOW() ,'%Y-%m-01') AND NOW() )) as AllJobs,
COUNT(case when (Submitted between DATE_FORMAT(NOW() ,'%Y-%m-01') AND NOW() ) then 1 else 0 end) as UserJobs
FROM Jobs j
LEFT JOIN Staff s
ON s.StaffID = j.StaffID
WHERE j.StaffID = s.StaffID
AND StaffID = '631613'
LIMIT 1
虽然 Earned 和 AllJobs 返回正确的值,但 UserJobs 显示的是此日期范围之外的工作。
【问题讨论】:
标签: php mysql sql group-by count