mysql - 如何在单个 mysql 查询中获取当前日期、当前星期、当前月份、当前年份销售额总和?
问题描述
我已经单独编写了以下查询,但我想在一个查询中,如何做到这一点,谁能帮忙..?
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 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
推荐阅读
- amazon-s3 - 从 API 网关 AWS S3 集成的 XML 响应返回 JSON 响应
- vue.js - 如何添加 Cache-Control:在 Nuxtjs 应用程序中?
- reactjs - 为什么提取到组件不起作用?
- python - 如何从短语列表中查找字典中的短语并使用找到和计数的短语创建数据框。应计算重复项
- react-native - React-Native. - Document Scan & Crop
- javascript - 如何将动态(变化的)字符串分成两个不同的部分?
- bigcommerce - 任何人都可以帮助我用 bigcommerce CLI 纠正错误吗
- powershell - 您可以使用 PSCredential 对象运行 quser 吗?
- python - 在 try except 语句中调用相同的函数
- javascript - TimeZone 选项在 Intl.DateTimeFormat() 中究竟做了什么