【发布时间】:2018-07-27 05:20:43
【问题描述】:
我有一个查询要从 2 个表中生成课程名称和总数的列表。它工作正常,但现在我想在同一个查询中获得本月和上个月的总数,所以我添加了几个案例。问题是这些案例返回的是空值。
这是我的查询:
$Sql = "SELECT t1.coursename, t1.id, SUM(t2.amount) AS total,
CASE
WHEN YEAR(t2.date) = YEAR(CURRENT_DATE - INTERVAL 1 MONTH) AND MONTH(t2.date) = MONTH(CURRENT_DATE - INTERVAL 1 MONTH) THEN SUM(t2.amount)
ELSE 0 END
AS lastMonthTotal,
CASE
WHEN YEAR(t2.date) = YEAR(CURRENT_DATE) AND MONTH(t2.date) = MONTH(CURRENT_DATE) THEN SUM(t2.amount)
ELSE 0 END
AS thisMonthTotal
FROM t1
LEFT JOIN t2 ON t2.courseid = t1.courseid
WHERE $pdoCoursesString GROUP BY t1.courseid";
【问题讨论】:
-
将所有这些案例条件放在 sum(amount) 下,并检查 group by 子句中的列