求SQLSERVER函数???或是算术问题???? ( 积分: 100 )

  • 主题发起人 主题发起人 leonychiu
  • 开始时间 开始时间
L

leonychiu

Unregistered / Unconfirmed
GUEST, unregistred user!
我有一个表数据如:
甲销售扣率: 0.045
公司有个基本扣率表A数据有:
0.05,0.035,0.02,0.03,0.015,0.01,0.005
想把甲的扣率计算出分2个扣率:
像0.045在A表中数据比较后取绝对值最接近里面数据中的一个如:0.05(如果出现有2个或多个一样接近的,也只需要取其中一个);
另外一个扣率就简单了:就是0.05-0.045=0.005得到。
但实在想不到,取第一个值的函数,请高手指点。
 
遊標實現吧!遊標裏判斷,將所有差值的絕對值插入一個臨時表中,然後取出最小值
 
绝对值最接近的,也就意味着它们两的差是最小的。
Select top 1 Discount, min(abs(Discount) - 0.045)
From TableA
Order by min(abs(Discount) - 0.045)
查询得到的记录中的第一个字段应该是你想要的第一个折扣率,第二个字段是第二个折扣率
 
select min(abs(销售扣率之差)) from ...
 
谢谢。我测试下后可以了再分分数
 
第一语法有问题,第二取的值也有问题。请再指教。
 
错误提示是什么呀?
 
Select 扣表率,min(abs(扣表率) - 0.045)
From TableA
group 扣表率
这样就取得了你刚才说的那两个了,第一个是大的,第二个是差值
 
select distinct Discount,Discount-0.045
from TableA
where Discount= (Select min(abs(Discount- 0.045)) + 0.045 From TableA)
 
Select top 1 Discount, min(abs(Discount) - 0.045)
From TableA
Order by min(abs(Discount) - 0.045)
这个是集合型,discount不是,而discount又不能取MAX,MIN型,所以用你的方法在测试其他结果。谢谢。
 
后退
顶部