0

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

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

例子

   SalesRep OrderValue PaymentMethodID 佣金%
   萨拉 100.00 1 15%
   萨拉 80.00 2 15%
   萨拉 350.00 1 15%
   萨拉 200.00 3 12.5%

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

4

2 回答 2

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
于 2012-06-10T23:21:54.090 回答
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
于 2012-06-10T23:18:44.337 回答