0

我有一个带有 ClearPrincipalLOC 字段的表。我需要根据 ClearPrincipalLOC 值产生佣金。

如果 ClearPrincipalLOC < 25000.99 那么佣金 = 125

如果 CLearPrincipalLOC < 50000.99 那么佣金 = 150

如果 ClearPrincipalLOC < 75000.99 那么佣金 = 175

等等。

最后,我需要使用水晶报告显示报告,其中所有佣金和 ClearPrincipalLOC 均按 AccountNo 分组。

我在数据库中没有任何佣金列。只有 ClearPrincipalLOC 和 AccountNo。柱子

我显示报告的存储过程如下:

select AccountNo, SUM(ClearPrincipalLOC) as PrincipalAmount, SUM(commission) as Commission from 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

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

(未经测试,因为我没有你的表格和数据)

另外,我的界限可能有点错误——但感觉很奇怪,ClearPrincipalLOC25000.98 中的 a 得到一个佣金率,而 25000.99 中的一个得到不同的佣金率——但你应该能够轻松地调整上面的值。

您是否选择使用临时表/表变量(如上)或将其设为永久表当然取决于您。

于 2013-03-12T06:40:26.473 回答
0

账户号 ClearPrincipalLOC 佣金

APK1234567 5000000

APK1234567 25000.65

APK1234568 60231.52

现在我需要在 ClearPrincipalLOC 的基础上生成佣金

然后像这样显示

AccountNo ClearPrincipalLOC 佣金

APK1234567 500000 150

APK1234567 25000.65 125

APK1234568 60231.52 175

然后所有数据将按 AccountNo 分组显示

于 2013-03-12T08:20:42.663 回答