从值中减去百分比
Posted
技术标签:
【中文标题】从值中减去百分比【英文标题】:Subtracting percentages from Values 【发布时间】:2018-01-02 18:07:27 【问题描述】:我有一组简单的表格,其中输入了基本的用户信息。我知道如何显示工资,但我不确定如何将所有员工的工资减去 50%,四舍五入到小数点后一位。
到目前为止,这是我的方法以及如何将百分比四舍五入到 1 d.p,但我不确定如何计算并从工资中减去百分比:
**ROUND_ABS, SELECT salary + (salary /100 *1)/1;**
这是它所引用的表:
ID LastName FirstName Address Salary
1 Hansen Ola Timoteivn 10 23.600
2 Svendson Tove Borgvn 23 29.687
3 Pettersen Kari Storgt 20 34.762
【问题讨论】:
这是甲骨文吗?请参阅round()
函数。实际样本数据会有所帮助。 HIRE_DATE 与它有什么关系?
是的,它是甲骨文。示例数据以粗体提供,HIRE_DATE 用于另一个部分,这也可能是不正确的,我打算删除但忘记了道歉。编辑我现在已经删除了这个部分
您的部分问题似乎与初等算术有关。如果薪水在 salary
列中,并且您必须从薪水中减去 44%,则公式为 salary * ( 1 - 44/100 )
- 如果 44
是一个变量(列名等),您将使用它而不是 44。这与编程或任何类型的计算机技术无关。
【参考方案1】:
这样的?据我了解,你必须计算工资的一半,然后将其四舍五入到小数点后一位。
SQL> with test (name, salary) as
2 (select 'Svenson', 29687.13 from dual union
3 select 'Pettersen', 34762.47 from dual
4 )
5 select name, salary, salary / 2 half, round(salary / 2, 1) rounded_half
6 from test;
NAME SALARY HALF ROUNDED_HALF
--------- ---------- ---------- ------------
Pettersen 34762,47 17381,235 17381,2
Svenson 29687,13 14843,565 14843,6
SQL>
【讨论】:
这是在正确的轨道上,但我知道可以在一行中执行此语句。为了简化,我需要尝试从工资中减去 50%,然后将其四舍五入到小数点后 1 位。感谢大家迄今为止的帮助。 “一行”是第 5 行,只有“ROUND(SALARY / 2, 1)”。我故意显示其他值,以便您可以更轻松地了解正在发生的事情,逐条添加信息(除以 2,四舍五入)。【参考方案2】:如果您希望直接从查询中选择 50% 的薪水,以下应该可行:
SELECT Id, LastName, FirstName, Address, ROUND((Salary/2),1) from Table_Name
【讨论】:
以上是关于从值中减去百分比的主要内容,如果未能解决你的问题,请参考以下文章