首页 > 解决方案 > 获取小数点后 5 个数字的百分比

问题描述

我正在处理带有项目估计年限字段的库存表。我想获得“估计年限”字段的“月折旧百分比”。

SUPPLY_TABLE

Field  SUPPLY_ITEM SUPPLY_LIFEYEARS  GET_MONTHDEPRE_PERCENT(Desired-output)
         Item A           20                   0.41667%
         Item B           5                    1.66667%

我尝试在 excel 中为估计年限的折旧百分比字段运行一个公式,它显示了正确的数据。但是当我尝试在选择过程中应用公式时,它会显示不同的错误结果。

Excel formula = (1/(20*12))*100

这是我的样本选择程序

CREATE PROCEDURE AAAAAAAAAAA_SAMPLE
RETURNS(
  SUPPLY_LIFEYEARS DECIMAL(12, 2),
  GET_MONTHDEPRE_PERCENT DECIMAL(12, 5))
AS
BEGIN
  FOR
    SELECT   
      SUPPLY_LIFEYEARS,
      (1/(SUPPLY_LIFEYEARS*12)) * 100

    FROM SUPPLY A
    INTO
      :SUPPLY_LIFEYEARS,
      :GET_MONTHDEPRE_PERCENT

  DO
    BEGIN
      SUSPEND;
    END
END;

此选择过程的输出(实际结果)

SUPPLY_LIFEYEARS   GET_MONTHDEPRE_PERCENT
     20                     0
     5                      1

期望或预期的输出

SUPPLY_LIFEYEARS   GET_MONTHDEPRE_PERCENT
     20                     0.41667%
     5                      1.66667%

标签: sqlfirebirdfirebird-3.0

解决方案


推荐阅读