0

列に別の数値が見つかった場合に数値を出力する機能を SQL ステートメントに追加しようとしています。基本的に、数値を特定の値にマッピングして、Excel 内で手数料を計算できるようにします。どのような種類の支払いであったかを宣言する PaymentMethodID という値があります。現金 (1)、小切手 (2)、クレジット カード (3) または PayPal (4)。営業担当者のコミッションは、使用された支払いの種類に基づいて変化するため、現在はスプレッドシートを手動で編集してレポートを作成しています。

PaymentMethodID にあるものに基づいて小数を出力する「Commission %」という列を作成したいと思います。

   SalesRep OrderValue PaymentMethodID コミッション %
   サラ 100.00 1 15%
   サラ 80.00 2 15%
   サラ 350.00 1 15%
   サラ 200.00 3 12.5%

「Commissions %」列を作成し、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 に答える