我已经写了下面的查询单独,但我想在一个单一的查询,如何做到这一点,谁能帮助…?
SELECT IFNULL(SUM(net_amount),0) as current_date FROM orders WHERE is_cancelled = false and business_date = CURRENT_DATE();
SELECT IFNULL(SUM(net_amount),0) as current_week FROM orders WHERE is_cancelled = false and YEARWEEK(business_date) = YEARWEEK(CURRENT_DATE());
SELECT IFNULL(SUM(net_amount),0) as current_month FROM orders WHERE is_cancelled = false and MONTH(business_date) = MONTH(CURRENT_DATE());
SELECT IFNULL(SUM(net_amount),0) as current_year FROM orders WHERE is_cancelled = false and YEAR(business_date) = YEAR(CURRENT_DATE());
可以使用条件聚合将所有单独的select语句组合为统一的select语句,如
SELECT SUM(CASE WHEN business_date = CURRENT_DATE()
THEN
net_amount
ELSE
0
END ) AS current_date,
SUM(CASE WHEN YEARWEEK(business_date) = YEARWEEK(CURRENT_DATE())
THEN
net_amount
ELSE
0
END ) AS current_week,
SUM(CASE WHEN MONTH(business_date) = MONTH(CURRENT_DATE())
THEN
net_amount
ELSE
0
END ) AS current_month,
SUM(CASE WHEN YEAR(business_date) = YEAR(CURRENT_DATE())
THEN
net_amount
ELSE
0
END ) AS current_year
FROM orders
WHERE is_cancelled = false