Sql server 2008 使用case语句生成佣金
我有一张桌子,上面有一块空地。我需要在ClearPrincipalLOC价值观的基础上产生佣金 如果ClearPrincipalLOC<25000.99,则佣金=125 如果CLearPrincipalLOC<50000.99,则佣金=150 如果ClearPrincipalLOC<75000.99,则佣金=175 等等 最后,我需要使用crystal reports显示报告,其中所有commission和ClearPrincipalLOC都按AccountNo分组 我的数据库里没有佣金栏。只有ClearPrincipalLOC和AccountNo。纵队 My Stored显示报告的过程如下: 选择AccountNo,SUM(ClearPrincipalLOC)作为PrincipalAmount,SUM(commission)作为commission 来自WU_主表 按帐号分组 请帮助我使用case语句或if-then语句获取佣金值,以便我可以按Accountno对整个佣金进行汇总,并显示在crystal report上Sql server 2008 使用case语句生成佣金,sql-server-2008,stored-procedures,crystal-reports,Sql Server 2008,Stored Procedures,Crystal Reports,我有一张桌子,上面有一块空地。我需要在ClearPrincipalLOC价值观的基础上产生佣金 如果ClearPrincipalLOC
/{@Commmission}
// {@Commmission}
Select {table.ClearPrincipalLOC}
Case Is < 25000.99: 125
Case Is < 50000.99: 150
Case Is < 75000.99: 175
Default: 0
选择{table.ClearPrincipalLOC}
病例<25000.99:125
病例<50000.99:150
病例<75000.99:175
默认值:0
与其将此作为一个案例
语句,不如使用一个表:
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
(未经测试,因为我没有您的表和数据)
此外,我的界限可能有点错误-但感觉奇怪的是,25000.98的ClearPrincipalLOC
得到一个佣金率,25000.99的一个得到一个不同的佣金率-但你应该能够轻松地调整上述内容
当然,您是选择使用临时表/表变量(如上所述)还是将其设置为永久表取决于您。帐户无ClearPrincipalLOC佣金 APK1234567 5000000 APK1234567 25000.65 APK1234568 60231.52 现在我需要在ClearPrincipalLOC的基础上产生佣金 然后像这样显示它 会计无本金佣金 APK1234567 500000 150 APK1234567 25000.65 125 APK1234568 60231.52 175
然后,所有数据都将按AccountNo显示组。更好的方法可能是添加一个带有
下限、上限、commission
的表,您可以对其进行连接,而不是一个长大小写
表达式。但我没有commission列的值。首先,我需要建立佣金。第一行是025000.99125
。第二行是2500150000.99150
。第三行是5000175000.99175
。明白了吗?对不起,我真的不明白:(这是正确的语法吗?它给了我语法错误。我需要在数据库中创建一列佣金吗?查询在crystal reports formula字段中运行良好,但它不能作为存储过程运行为什么?我的示例是crystal reports的formula语法。您需要将其转换为T/SQL才能在SQL Server中工作。嗯,我们没有任何samp没有数据或预期结果,因此我无法运行查询并调整它,直到它正确为止。让我向您显示我的表结构在您的问题底部有一个edit
链接。使用该链接更新您的问题,然后删除此答案。@\u Damien \u不信者您有我的表结构吗?您能帮我这样做吗?