数据集里编写sql语句能使用那些函数?

image.png

如图,想用函数让日期变成,2010-01-01,2010-02-01,这样后面的日都变成月初,然后再求一列上月的环比增长率和上年同比增长率,如何利用SQL语句直接求出数据,不在单元格计算

试了几个函数都识别不出来,咋肥事

FineReport 李峥 发布于 2022-8-12 14:36 (编辑于 2022-8-12 14:37)
1min目标场景问卷 立即参与
回答问题
悬赏:3 F币 + 添加悬赏
提示:增加悬赏、完善问题、追问等操作,可使您的问题被置顶,并向所有关注者发送通知
共1回答
最佳回答
0
snrtuemcLv8专家互助
发布于2022-8-12 14:38

你是做联系吗,自带sqlite数据库参考

select t.m,t.ym,

      t.销量,

      t1.销量 同期,

      (case when t1.销量 is null then '' 

          else (t.销量-t1.销量)/t1.销量 end) 同比,

      t2.销量 上期,

      (case when t2.销量 is null then '' 

          else (t.销量-t2.销量)/t2.销量 end) 环比

from 

(

select strftime('%m',b.订购日期)+0 m,

      strftime('%Y-%m',b.订购日期) ym,

      sum(a.数量) 销量

from 订单明细 a

    left join 订单 b on a.订单ID=b.订单ID

where strftime('%Y',b.订购日期) = '${y}'

group by strftime('%Y-%m',b.订购日期)

) t

left join

(

select strftime('%m',b.订购日期)+0 m,

      strftime('%Y-%m',b.订购日期) ym,

      sum(a.数量) 销量

from 订单明细 a

    left join 订单 b on a.订单ID=b.订单ID

where strftime('%Y',b.订购日期) = '${y-1}'

group by strftime('%Y-%m',b.订购日期)

) t1 on t.m=t1.m

left join

(

select (case when strftime('%m',b.订购日期)+0 <=11

        then strftime('%m',b.订购日期)+1 end) m,

      strftime('%Y-%m',b.订购日期) ym,

      sum(a.数量) 销量

from 订单明细 a

    left join 订单 b on a.订单ID=b.订单ID

where strftime('%Y',b.订购日期) = '${y}'

group by strftime('%Y-%m',b.订购日期)

union

select (case when strftime('%m',b.订购日期)+0 =12

        then 1 end) m,

      strftime('%Y-%m',b.订购日期) ym,

      sum(a.数量) 销量

from 订单明细 a

    left join 订单 b on a.订单ID=b.订单ID

where strftime('%Y',b.订购日期) = '${y-1}'

group by strftime('%Y-%m',b.订购日期)

) t2 on t.m=t2.m

image.png

  • yzmhaRR81664191 yzmhaRR81664191 帆软内置sql 里面 什么函数能让日期加一天 或者加一年呢 (比如 参数日期 是1997-07-07) 通过一个函数公式变成1997-07-08
    2022-09-02 13:30 
  • 2关注人数
  • 438浏览人数
  • 最后回答于:2022-8-12 14:38
    请选择关闭问题的原因
    确定 取消
    返回顶部