使用案例陈述来产生佣金

时间:2013-03-11 11:56:09

标签: sql-server-2008 stored-procedures crystal-reports

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

如果ClearPrincipalLOC< 25000.99然后佣金= 125

如果CLearPrincipalLOC< 50000.99然后佣金= 150

如果ClearPrincipalLOC< 75000.99然后佣金= 175

等等。

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

我在数据库中没有任何专栏。只有ClearPrincipalLOC和AccountNo。柱

我要显示的存储过程报告位于:

选择AccountNo,SUM(ClearPrincipalLOC)作为PrincipalAmount,SUM(佣金)作为佣金 来自WU_mainTable 按帐户分组

请帮助我使用案例陈述获取佣金值,或者如果声明那么我可以将按帐号分组的整个佣金加起来并显示在水晶报表上

3 个答案:

答案 0 :(得分:0)

// {@Commmission}
Select {table.ClearPrincipalLOC}
Case Is < 25000.99: 125
Case Is < 50000.99: 150
Case Is < 75000.99: 175
Default: 0

答案 1 :(得分: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

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

另外,我可能会有一些错误的界限 - 但是{25}获得一个佣金率的ClearPrincipalLOC和25000.99中的一个获得不同的一个感觉很奇怪 - 但你应该能够轻松地调整上面的

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

答案 2 :(得分:0)

帐号否ClearPrincipalLOC委员会

APK1234567 5000000

APK1234567 25000.65

APK1234568 60231.52

现在我需要根据ClearPrincipalLOC生成佣金

然后将其显示为

AccountNo ClearPrincipalLOC Commission

APK1234567 500000 150

APK1234567 25000.65 125

APK1234568 60231.52 175

然后所有数据都将显示在AccountNo

组中