0

ClearPrincipalLOC フィールドを持つテーブルがあります。ClearPrincipalLOC 値に基づいてコミッションを生成する必要があります。

ClearPrincipalLOC < 25000.99 の場合、コミッション = 125

CLearPrincipalLOC < 50000.99 の場合、手数料 = 150

ClearPrincipalLOC < 75000.99 の場合、手数料 = 175

等々。

最後に、Crystal レポートを使用して、すべてのコミッションと ClearPrincipalLOC が AccountNo でグループ化されたレポートを表示する必要があります。

データベースに手数料の列がありません。ClearPrincipalLOC と AccountNo しかありません。桁

レポートを表示するためのストアドプロシージャは次のとおりです。

AccountNo を選択し、SUM(ClearPrincipalLOC) を PrincipalAmount として、SUM(commission) を Commission として WU_mainTable Group by AccountNo から選択します。

caseステートメントまたはif thenステートメントを使用してコミッション値を取得するのを手伝ってください。これにより、Accountnoごとにグループ化されたコミッション全体を合計し、クリスタルレポートに表示できます

4

3 に答える 3

0
// {@Commmission}
Select {table.ClearPrincipalLOC}
Case Is < 25000.99: 125
Case Is < 50000.99: 150
Case Is < 75000.99: 175
Default: 0
于 2013-03-11T12:01:06.560 に答える
0

アカウントなしClearPrincipalLOCコミッション

APK12345675000000

APK1234567 25000.65

APK123456860231.52

ClearPrincipalLOCに基づいてコミッションを生成するために必要なもの

次のように表示します

AccountNoClearPrincipalLOCコミッション

APK1234567 500000 150

APK1234567 25000.65 125

APK1234568 60231.52 175

その後、すべてのデータがAccountNoでグループ化されて表示されます

于 2013-03-12T08:20:42.663 に答える
0

これをCASEステートメントとして行うのではなく、テーブルを使用して行います。

declare @CommissionRanges table (
    LowBound decimal(18,2) not null,
    HighBound decimal(18,2) not null,
    CommissionRate decimal(18,2) not null
)
insert into @CommissionRanges (LowBound,HighBound,CommissionRate) values
(0,25000.99,125),
(25001,50000.99,150),
(50001,75000.99,175)

select AccountNo, SUM(ClearPrincipalLOC)as PrincipalAmount, SUM(cr.CommissionRate) as Commission
from WU_mainTable mt
    inner join
    @CommissionRanges cr
        on
            mt.ClearPrincipalLOC between cr.LowBound and cr.HighBound
group by AccountNo

(テーブルとデータがないためテストされていません)

また、境界が少し間違っている可能性があります-しかしClearPrincipalLOC、25000.98 の a が 1 つの手数料率を取得し、25000.99 の 1 つが別の手数料率を取得するのは奇妙に感じます-しかし、上記を簡単に調整できるはずです.

一時テーブル/テーブル変数 (上記のように) を使用してこれを行うか、それを永続的なテーブルにするかは、もちろんあなた次第です。

于 2013-03-12T06:40:26.473 に答える