1 背景
客户想动态计算以显示正确的成本数据。
2 场景描述
2.1数据展示
ID | 关联方属性 | 内部分包对应主合同 | 确认成本 | 确认收入 |
1 | 内部 | 无对外主项目 | 5000 | 3000 |
2 | 外部 | 有对外主项目 | 6000 | 4000 |
3 | 内部 | 有对外主项目 | 7000 | 5000 |
4 | 内部 | 无对外主项目 | 8000 | 6000 |
5 | 外部 | 无对外主项目 | 9000 | 7000 |
6 | 内部 | 有对外主项目 | 10000 | 8000 |
7 | 内部 | 无对外主项目 | 11000 | 9000 |
8 | 外部 | 有对外主项目 | 12000 | 10000 |
9 | 内部 | 有对外主项目 | 13000 | 11000 |
10 | 内部 | 无对外主项目 | 14000 | 12000 |
11 | 外部 | 无对外主项目 | 15000 | 13000 |
12 | 内部 | 有对外主项目 | 16000 | 14000 |
13 | 内部 | 无对外主项目 | 17000 | 15000 |
14 | 外部 | 有对外主项目 | 18000 | 16000 |
15 | 内部 | 有对外主项目 | 19000 | 17000 |
6 | 内部 | 无对外主项目 | 20000 | 18000 |
17 | 外部 | 无对外主项目 | 21000 | 19000 |
18 | 内部 | 有对外主项目 | 22000 | 20000 |
19 | 内部 | 无对外主项目 | 23000 | 21000 |
20 | 外部 | 有对外主项目 | 24000 | 22000 |
2.2 业务说明
公司内部交易遵循一套严格的会计原则,要求根据不同的关联方属性和合同状态采用不同的计算方法来确认最终的成本。具体来说:
- 对于“内部”且没有对外主项目的合同:这些交易通常不会直接影响公司的外部财务报表,因此直接使用确认成本作为最终的成本。
- 对于所有其他情况:包括外部合同或内部但有对外主项目的合同,需要从确认成本中减去确认收入,以便准确反映这些项目的实际经济效果。
3 具体操作
前提条件
1、如果想复现示例,需要先把示例数据导入到模型中或者把文件导入到业务库中,详细查看:文件。
2、示例下载数据:计算列通过CASE WHEN实现动态计算.xls。
3、可以点击链接跳转到外部体验环境查看示例。
1、把数据导入到产品内置的northwind数据库中,详细查看:文件。
2、创建数据模型如下图:
3、创建计算列,表达式如下:
由于产品并没有封装case when的函数,这个写法是遵循连接的数据库的case when 函数;计算列支持写原生数据库的函数。
4、创建之后保存数据模型,如果想要查明细,可以直接去创建即席查询进行分析;如果想要汇总统计,可以创建透视分析,根据关联方属性查看调整后的成本:
表达式内容:
CASE WHEN ([关联方属性] = '内部' AND [内部分包对应主合同] = '无对外主项目') OR [关联方属性] <> '内部' THEN [确认成本] ELSE [确认成本] - [确认收入] END