总结几个产品类别

时间:2017-05-23 10:22:30

标签: sql sql-server sql-server-2008

我正在尝试计算下表中给出的Life Premium。我想仅计算产品类别如“Life%”的行的总和,但是将其应用于我们为策略出现“Life”产品的所有行,以及其他每个策略(即那些不是'生命'产品应该是0)

enter image description here

我尝试了总和(成本)超过(产品子类别),但它给出了所有策略的值,即使是那些没有生命产品的策略。遗憾的是,partition by子句不允许使用Where子句。

有人可以帮忙吗?

2 个答案:

答案 0 :(得分:0)

您可以这样做:

select t.*,
       sum(case when productsubcategory like 'Life%' then cost else 0 end) over
           (partition by policy) as lifepremium
from t;

答案 1 :(得分:0)

使用Case When

检查: -

Select a.*, case when a.policy=b.policy then Life_Premium else 0 end as Life_Premium   
from
table a
left join
(
select policy,sum(cost) as Life_Premium from TableA where product_sub_category  LIKE 'Life%'
group by policy
) b
on a.policy=b.policy;

如果您有任何问题,请告诉我