不用leftjoin怎么用一条SQL写出来

SELECT product_type,'合计' AS responsibility_category,SUM(returned_quantity) AS exodus_rate,YEAR(order_payment_time) AS year,MONTH(order_payment_time) AS month FROM various_responsibilities WHERE order_payment_time between date_sub('2022-10-12',interval 4 month) and '2022-10-12' AND branch_date<='2022-10-12' GROUP BY product_type,year,month ) C

LEFT JOIN(

SELECT product_type,SUM(sales_volume) AS exodus_rate,YEAR(order_payment_time) AS year,MONTH(order_payment_time) AS month FROM various_responsibilities WHERE order_payment_time between date_sub('2022-10-12',interval 4 month) and '2022-10-12' AND branch_date<='2022-10-12' GROUP BY product_type,year,month) D ON C.product_type=D.product_type AND C.year=D.year AND C.month=D.month

SQL yzme7sTE0397329 发布于 2022-10-14 16:39
1min目标场景问卷 立即参与
回答问题
悬赏:0 F币 + 添加悬赏
提示:增加悬赏、完善问题、追问等操作,可使您的问题被置顶,并向所有关注者发送通知
共2回答
最佳回答
0
yzm339714Lv6中级互助
发布于2022-10-14 17:20

你是要合计和  按月汇总的在一起?(根据合计二字推断的,毕竟你sql 时间已经,group by 也都已经,实在无法分辨啊) 是的话  用开窗函数就好了

select product_type,year,month ,exodus_rate, sum(exodus_rate) over(partition by product_type,year) All_exodus_rate from (

SELECT product_type,SUM(sales_volume) AS exodus_rate,YEAR(order_payment_time) AS year,MONTH(order_payment_time) AS month FROM various_responsibilities WHERE order_payment_time between date_sub('2022-10-12',interval 4 month) and '2022-10-12' AND branch_date<='2022-10-12' GROUP BY product_type,year,month) D ON C.product_type=D.product_type AND C.year=D.year AND C.month=D.month) a

  • yzme7sTE0397329 yzme7sTE0397329(提问者) 数据库版本低,写不了开窗函数
    2022-10-14 18:01 
  • yzm339714 yzm339714 回复 yzme7sTE0397329(提问者) 那就只能left join 了 -_-
    2022-10-14 18:03 
最佳回答
0
Z4u3z1Lv6专家互助
发布于2022-10-14 16:45

你不已经写出来了么

  • yzme7sTE0397329 yzme7sTE0397329(提问者) 不能用left join这种方法写
    2022-10-14 16:46 
  • Z4u3z1 Z4u3z1 回复 yzme7sTE0397329(提问者) 最开始 加 select * from(
    2022-10-14 16:51 
  • 2关注人数
  • 301浏览人数
  • 最后回答于:2022-10-14 17:20
    请选择关闭问题的原因
    确定 取消
    返回顶部