sql server求解!求解!

大shen求解,为啥我这个会算不出来,答案根本不对
大shen求解,为啥我这个会算不出来,答案根本不对
大shen求解,为啥我这个会算不出来,答案根本不对

img

语句应该没啥问题,数据问题吧。。

问题确定,"销售金额"列数据类型不应位int,你数据表设计的不科学,money类型可以。
如果非要用int的话,也可以的,1.0。不用类型转换。int/int=int*

select tyear                                                         年
     , tmonth                                                        月份
     , sale_money                                                    销售
     , lag(sale_money) over (order by tyear,tmonth)                  上月
     , sale_money / lag(sale_money) over (order by tyear,tmonth) - 1 环比
     , 2 / 3                                                         问题
     , 2 * 1.0 / 3                                                   可以解决
from test3

img

可能是小数点被丢掉了。建议在分子部分 * 100 ,这样计算出来的数据,就是小数点后两位了,可以直接加上百分号了。

首先上月为null和0的改为1

这个没问题,你可以自己造两个没有问题的数据试试

先查询你需要计算的数据作为临时表,然后再包一层就行了

数据类型错了