首页 > 解决方案 > 有没有办法使用 case 来乘以列

问题描述

我正在创建一个连接两个表的报告。问题在于一张表#members可能有多个calendar_periods(即 201903)和不同的成员月份,产品 X = .80 的 201903 和产品 Y = .20 的 201903。

我想从#claims 中取出美元,并将 201903 年的美元(1,000 美元)与会员月份相乘,并将它们归因于每个产品 = X = 800 美元和 Y = 200 美元。

但是,当我执行以下操作时,它适用于上述情况,但当没有两个相同的 calendar_periods 时,它会按比例为其他人评估它。

例如,201803 可能是 0.80,但只有一条记录,现在通过以下计算,我将按比例分配我的美元 80%。有没有解决的办法?

我尝试使用 a.mm * b.paid aspaid 并确定我正在使用一条记录按比例分配行

select a.*, a.mm * b.paid as paid
into #final_Table_use
from #member_final a 
left join #claims_final b on a.member_id = b.member_id 
                          and a.CALENDAR_PERIOD = b.CALENDAR_PERIOD

我期望当有多个不同产品的日历期间时我会按比例分配美元,并且我不会对具有一个日历期间记录的那些进行比例分配

标签: sqlsql-servercase-when

解决方案


推荐阅读