SQL - 为另一个数字插入一个数字

时间:2012-06-10 23:14:06

标签: mysql sql

如果在列中找到另一个数字,我正在尝试向SQL语句添加输出数字的功能。基本上,将数字映射到给定值,以便我们可以计算Excel内的佣金。我们有一个名为PaymentMethodID的值,它声明它是什么类型的付款。现金(1),支票(2),信用卡(3)或PayPal(4)。销售代表佣金根据使用的付款方式而变化,因此现在我们手动编辑电子表格以生成报告。

我想创建一个名为“Commission%”的列,根据PaymentMethodID中的内容输出小数。

实施例

   SalesRep   OrderValue    PaymentMethodID    Commission %
   Sara       100.00        1                  15%
   Sara       80.00         2                  15%
   Sara       350.00        1                  15%
   Sara       200.00        3                  12.5%

如何创建“佣金百分比”列并将PaymentMethodID映射到百分比?

2 个答案:

答案 0 :(得分:6)

执行此操作的简洁方法是创建一个包含佣金的PaymentMethods表(或扩展PaymentMethods表(如果已有)。

这样的东西
CREATE TABLE PaymentMethods (
  PaymentMethodID INT NOT NULL,
  CommissionPerc FLOAT
);

INSERT INTO PaymentMethods VALUES
  (1,15), (2,15), (3,12.5);

然后只需加入表格,类似于

SELECT 
  Sales.SalesRep, 
  Sales.OrderValue
  Sales.PaymentMethodID,
  PaymentMethods.CommissionPerc
FROM
  Sales
  INNER JOIN PaymentMethods ON Sales.PaymentMethodID=PaymentMethods.PaymentMethodID

答案 1 :(得分:2)

使用CASE语句。像这样:

SELECT
        SalesRep,
        OrderValue,
        PaymentMethodID,
        CASE
            WHEN PaymentMethodID = 1 THEN 15.00
            WHEN PaymentMethodID = 2 THEN 15.00
            WHEN PaymentMethodID = 3 THEN 12.50
        END as CommisionPercent
FROM SomeTable