代码求优化,并最终根据设备序列号求和
最终求和 根据设备序列号求分润封顶,分润78,分润38
select * ,ISNULL(分润封顶,0)as 封顶分润,ISNULL(分润78,0)as[78分润],ISNULL(分润38,0)as[38分润]
from
(select aa.设备序列号,sum(case when aa.收入金额>3333 and aa.是否封顶=1 then cast((aa.利润-1)as float) end)as 分润封顶
from (
select 交易.*,费率.是否封顶,费率.利润
from 交易,费率
where 交易.设备序列号=费率.设备号
)aa
group by 设备序列号)abc
left join
(
select aa.设备序列号,sum(case when aa.收入金额<3333 and aa.是否封顶=1 then cast((0.0014*aa.收入金额)as float) end)as 分润78
from (
select 交易.*,费率.是否封顶,费率.利润
from 交易,费率
where 交易.设备序列号=费率.设备号
)aa
group by 设备序列号)fenrun
on abc.设备序列号=fenrun.设备序列号
left join
(
select aa.设备序列号,sum(case when aa.代理费率='0.0033' then cast((0.0005*aa.收入金额)as float) end)as 分润38
from (
select 交易.*,费率.是否封顶,费率.利润,费率.代理费率
from 交易,费率
where 交易.设备序列号=费率.设备号
)aa
group by 设备序列号)ffenrun
on abc.设备序列号=ffenrun.设备序列号