mysql按季度统计数量金额

news/发布时间2024/5/16 1:01:35

需求:
oms_order-订单表:order_code-订单号,sales_time-销售时间oms_order_shopify_refund-订单退款表:order_code-订单号,refund_time-退款时间oms_order_product:order_code-订单号,seller_sku-商品编码,buy_quantity-售出数量,refund_quantity-退货数量查询订单时间按季度统计售出数量,并且按退款时间为订单时间+30天的退货数量

要查询订单时间按季度统计的售出数量,并按退款时间为订单时间加30天的退货数量,可以使用联结查询和条件筛选来实现。以下是一种可能的查询方法:

SELECTCONCAT(YEAR(o.sales_time), 'Q', QUARTER(o.sales_time)) AS sales_quarter,SUM(oop.buy_quantity) AS sold_quantity,COALESCE(SUM(CASE WHEN osr.refund_time <= DATE_ADD(o.sales_time, INTERVAL 30 DAY) THEN oop.refund_quantity ELSE 0 END), 0) AS refunded_quantity
FROMorder o
JOINorder_product oop ON o.order_code = oop.order_code
LEFT JOINorder_shopify_refund osr ON o.order_code = osr.order_code
GROUP BYsales_quarter;

这个查询中使用了以下关键部分:

  • CONCAT(YEAR(o.sales_time), 'Q', QUARTER(o.sales_time)) 用于将销售时间转换为年份加季度的形式,以便按季度进行统计。
  • SUM(oop.buy_quantity) 计算了每个季度的售出数量。
  • SUM(CASE WHEN osr.refund_time <= DATE_ADD(o.sales_time, INTERVAL 30 DAY) THEN oop.refund_quantity ELSE 0 END) 计算了退款时间在订单时间加30天内的退货数量,使用了 CASE 表达式进行条件判断。
  • LEFT JOIN 用于联结订单表、订单商品表和订单退款表,确保所有订单都会被包含在结果中,即使没有退货记录。

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.ulsteruni.cn/article/62673628.html

如若内容造成侵权/违法违规/事实不符,请联系编程大学网进行投诉反馈email:xxxxxxxx@qq.com,一经查实,立即删除!

相关文章

mybatisPlus执行save方法获取自动填充的主键id

使用user1.getId(); 实测有效。 更多直接参考这篇文章:mybatis-plus中的save方法保存后会返回id吗 - CSDN文库

Asp .Net Core 系列:国际化多语言配置

目录概述术语本地化器IStringLocalizer在服务类中使用本地化IStringLocalizerFactoryIHtmlLocalizerIViewLocalizer资源文件区域性回退配置 CultureProvider内置的 RequestCultureProvider实现自定义 RequestCultureProvider使用 Json 资源文件设计原理IStringLocalizerFactory…

制作一个能构建 dotnet AOT 的 gitlab ruuner 的 Debian docker 镜像

我的需求是需要有一个能够构建出 dotnet 的 AOT 包的环境,要求这个环境能解决 glibc 兼容依赖的问题,能打出来 x64 和 arm64 的 AOT 的包,且能够运行 gitlab runner 对接自动构建需求 以下是我列举的需求支持制作能在 UOS 系统和麒麟系统上运行的包 支持制作出来的包是 AOT …

Python高阶--闭包

闭包作用:可以用来在一个函数与一组私有变量之间创建关联关系,在给定函数被多次调用的过程中,这些私有变量能够保持其持久性(保存运行环境与变量的状态) 闭包的特征:1.必须要有函数的嵌套,而且外层函数必须返回内层函数。外层函数相当于给内层函数提供了一个包装起来的运…

U9网页提示Base-64字符数组或字符串的长度无效

GoogleChrome打开U9网页突然出现错误 Base-64 字符数组或字符串的长度无效。 说明:Base-64 字符数组或字符串的长度无效。Page URL: /U9/mvc/login/index?ReturnUrl=%2fU9%2fmvc%2fmain%2findex 堆栈信息在 System.Convert.FromBase64_Decode(Char* startInputPtr, Int32 inp…