sql.前面月份的某个值使用对应12月份的值

12月份水果类总销售计划1000吨,每种水果都有对应的比例分摊。销售计划乘以分摊比例就可以得到销售数量,如image.png现在12月份之前的都只有水果类的总数。没有对应的分摊比例。前面11各月的分摊比例都沿用12月份的分摊比例。求sql

13527520416 发布于 2021-12-13 11:20 (编辑于 2021-12-13 13:59)
1min目标场景问卷 立即参与
回答问题
悬赏:3 F币 + 添加悬赏
提示:增加悬赏、完善问题、追问等操作,可使您的问题被置顶,并向所有关注者发送通知
共3回答
最佳回答
0
E8mE1639Lv5见习互助
发布于2021-12-13 15:05(编辑于 2021-12-13 15:06)

with a as 

(

select product_name,weight,ftbl where 月份 = 12

)

,b as

(

select product_name,月份,max(weight) weight  from 表 where 月份 < 12 group by product_name, 月份 

)

select b.product_name,b.weight,a.ftbl,b.weight*a.ftbl from b inner join a on b.product_name = a.product_name union all

select product_name,weight,ftbl,weight*ftbl from a

最佳回答
0
CD20160914Lv8专家互助
发布于2021-12-13 14:03(编辑于 2021-12-13 14:08)

之前月份的加上12-月的数字。。。后强行把月份弄成一列都是12月。然后匹配12月的比例就行了

比如11月假如你存的是   11数字        多一列出来就让它变成12,然后用多的这一列子查询12月的就行

类似这样?

select 

t1.month_num,

t1.number_total,

t1.number_total*t2.bl1 as zl1,

t1.number_total*t2.bl2 as zl2

from

(

select 11 as month_num,30 as number_total,11+(12-11) as December

union all

select 10 as month_num,50 as number_total,10+(12-10) as December) t1

join 

(select 12 as month_num,1000 as number_total,0.45 as bl1, 0.92 as bl2 ) t2

on t1.December=t2.month_num

最佳回答
0
快乐星光Lv5中级互助
发布于2021-12-13 14:40(编辑于 2021-12-13 15:09)

等等。在修改

  • 4关注人数
  • 384浏览人数
  • 最后回答于:2021-12-13 15:09
    请选择关闭问题的原因
    确定 取消
    返回顶部