我用的2008R2的数据库,我想在数据库实现这个查询功能,再FR上面显示,这个语句如何编写

我用的2008R2的数据库,我想在数据库实现这个查询功能,再FR上面显示,这个语句如何编写

我的总产值是1800件

0-1300件 的单价是0.1    1300到1500的单价是1.05    1500以上是1.08   总共工资是183元

1300*0.1+(1500-1300)*1.05 +(1800-1500)*1.08=183

1111.png

金色年华 发布于 2022-7-25 15:41
1min目标场景问卷 立即参与
回答问题
悬赏:3 F币 + 添加悬赏
提示:增加悬赏、完善问题、追问等操作,可使您的问题被置顶,并向所有关注者发送通知
共3回答
最佳回答
0
lxy2Lv6中级互助
发布于2022-7-25 15:54

case when 总产值<=1300 then 总产值*0.1 

     when 总产值>1300 and 总产值<=1500 then 1300*0.1+(总产值-1300)*1.05

else 1300*0.1+(1500-1300)*1.05 +(总产值-1500)*1.08

end as all_amount

最佳回答
0
爱喝水的小鱼Lv2见习互助
发布于2022-7-25 15:48(编辑于 2022-7-25 16:45)

case 件数 when 件数 <= 1300 then 件数*0.1 when 件数 > 1300 and 件数 <= 1500 then 130 + 200 * 1.05 else 130 + 200 * 1.05 + (件数 - 1500) * 1.08 end

感觉提问题的人,把报表理解错了,然后带偏了我们好几人^_^

  • 金色年华 金色年华(提问者) 哪里有问题,请教一下
    2022-07-25 17:28 
  • 爱喝水的小鱼 爱喝水的小鱼 回复 金色年华(提问者) 你确定这个1300*0.1+(1500-1300)*1.05 +(1800-1500)*1.08=183等式能成立???
    2022-07-25 17:29 
最佳回答
0
Z4u3z1Lv6专家互助
发布于2022-7-25 15:54

DECLARE  @SL BIGINT

SET @SL=1800

SELECT (CASE WHEN @SL>=1300 THEN 1300*0.1 ELSE @SL*0.1 END) [第一档],(CASE WHEN @SL>1300 THEN (CASE WHEN @SL>1500 THEN 200*1.05 ELSE (@SL-1300)*1.05 END ) ELSE 0 END) [第二档],(CASE WHEN @SL>1500 THEN (@SL-1500)*1.08 ELSE 0 END) [第三档]

image.png

image.png

  • 金色年华 金色年华(提问者) 答案是183元吗
    2022-07-25 17:27 
  • Z4u3z1 Z4u3z1 回复 金色年华(提问者) 1300*0.1+(1500-1300)*1.05 +(1800-1500)*1.08=183 你这个不成立啊 130+210+324 咋可能是183嘛~~
    2022-07-25 17:29 
  • 3关注人数
  • 271浏览人数
  • 最后回答于:2022-7-25 16:45
    请选择关闭问题的原因
    确定 取消
    返回顶部