asked on
DECLARE @MaxComm decimal (3,2)
SET @MaxComm = ( select max(CommissionPercentage) from tblCommissionTiers)
SELECT DISTINCT empNum, gross as SALES ,targ.SalesTarget AS TARGET
, lowPercentage,highPercentage, CommissionPercentage
,gross*lowPercentage AS LowAmount
,gross*highPercentage AS HighAmount
,(gross*highPercentage) - (gross*lowPercentage) VarHighVsLow
,CASE WHEN gross > targ.SalesTarget
THEN ((gross*highPercentage) - (gross*lowPercentage)) * CommissionPercentage
WHEN (gross - targ.SalesTarget) > 100.00
THEN (gross - targ.SalesTarget) * @MaxComm
ELSE 0 END COMMISSION
FROM tblRevenues rev
INNER JOIN tblCommissionTiers com
ON rev.commissionFlag = com.commissionFlag
INNER JOIN [dbo].[tblTargets] Targ
ON com.commissionFlag = targ.commissionFlag
GROUP BY empNum, gross,targ.SalesTarget , lowPercentage ,highPercentage, CommissionPercentage
ASKER
ASKER
ASKER
ASKER
ASKER
ASKER
ASKER
Microsoft SQL Server is a suite of relational database management system (RDBMS) products providing multi-user database access functionality.SQL Server is available in multiple versions, typically identified by release year, and versions are subdivided into editions to distinguish between product functionality. Component services include integration (SSIS), reporting (SSRS), analysis (SSAS), data quality, master data, T-SQL and performance tuning.
TRUSTED BY
CASE WHEN gross <= targ.SalesTarget
THEN ((gross*highPercentage) - (gross*lowPercentage)) * CommissionPercentage
WHEN (gross > targ.SalesTarget)
THEN (gross - targ.SalesTarget) * @MaxComm
ELSE 0 END COMMISSION
Or do you want to calculate seperate commission for reaching the target AND max commission for only the part that was above target?