SQLSERVER 从大到小递减算法
来源:互联网 发布:php 工作日志管理系统 编辑:程序博客网 时间:2024/06/08 08:26
生成算法公式:@incomeAmount*16%-@incomeAmount*(16-8)%-@incomeAmount*(8-3)%说明:按Level从大到小递减;@incomeAmount为自定义系数,默认20.8结果:20.8*16*0.01-20.8*-8*0.01-20.8*-5*0.01
DECLARE @incomeAmount FLOAT=20.8;WITH dt AS(SELECT Level=1,ConsignSale=3UNION ALLSELECT Level=2,ConsignSale=8UNION ALLSELECT Level=3,ConsignSale=16)SELECT ROW_NUMBER() OVER(ORDER BY LEVEL DESC) RowIndex,* INTO #dt FROM dtDECLARE @Count INT,@RowIndex INT=1,@PrevConsignSale FLOAT=0,@ExcSQL VARCHAR(800)=''SELECT @Count=COUNT(*) FROM #dtWHILE(@Count>0)BEGINIF @RowIndex=1BEGINSELECT @PrevConsignSale=[ConsignSale] FROM #dt WHERE RowIndex=@RowIndexSET @ExcSQL=CONVERT(VARCHAR(100),@incomeAmount)+'*'+ CONVERT(VARCHAR(100),@PrevConsignSale) +'*0.01' ENDELSEBEGINSELECT @ExcSQL=@ExcSQL+'-'+CONVERT(VARCHAR(100),@incomeAmount)+'*'+ CONVERT(VARCHAR(100),[ConsignSale]-@PrevConsignSale) +'*0.01' FROM #dt WHERE RowIndex=@RowIndexSELECT @PrevConsignSale=[ConsignSale] FROM #dt WHERE RowIndex=@RowIndexENDSET @RowIndex=@RowIndex+1SET @Count=@Count-1ENDCREATE TABLE #rs(Success FLOAT)INSERT INTO #rs(Success)EXEC('select Success='+@ExcSQL)SELECT * FROM #dtSELECT * FROM #rsSELECT [计算公式]=(@ExcSQL)DROP TABLE #dt,#rs
阅读全文
0 0
- SQLSERVER 从大到小递减算法
- 递减剔除数组元素算法
- 一个数组的值先从小到大递增后从大到小递减,找出最大的值
- 一个数组的值先从小到大递增后从大到小递减,找出最大的值
- 一个数组的值先从小到大递增后从大到小递减,找出最大的值 .
- 一个数组的值先从小到大递增后从大到小递减,找出最大的值
- Shell 排序算法(递减增量排序算法)
- 从ACCESS转至SQLSERVER
- 图片下载从SQLServer数据库
- 从Oracle连接SQLServer
- 算法:递归解序列中最长递减子序列
- 希尔排序 Shell Sort,也称递减增量排序算法
- 微软算法经典3 求最长递减子序列
- 希尔排序(又叫递减增量排序算法)
- 算法基础:最大递减数问题(Golang实现)
- SqlServer MD5算法实现
- 从键盘输入一个数,计算从这个数开始 逐一递减的每个数的阶乘
- sqlserver从入门到精通
- NodeJS学习笔记
- 精彩博客收集
- powerdesigner通过ODBC连接MySQL实现逆向工程
- 流体模拟边界问题
- 《图解HTTP》读书笔记(10)第10章构建Web内容的技术(关键词:HTTP/)
- SQLSERVER 从大到小递减算法
- java中的定时任务实现的几种方式
- 基于dubbo从传统MVC架构转向SOA架构分布式设计2--(mvc->soa)
- Kaggle入门实例-预测房价
- android 计时与倒计时
- css 如何让背景图片拉伸填充避免重复显示 不是平铺
- 基于c++浅谈容器(vector和list)
- 5基于opencv的非线性滤波(中值滤波_双边滤波)
- Sigreturn Oriented Programming (SROP) Attack攻击原理