1 背景

客户想动态计算以显示正确的成本数据。

2 场景描述

2.1数据展示

ID关联方属性内部分包对应主合同确认成本确认收入
1内部无对外主项目50003000
2外部有对外主项目60004000
3内部有对外主项目70005000
4内部无对外主项目80006000
5外部无对外主项目90007000
6内部有对外主项目100008000
7内部无对外主项目110009000
8外部有对外主项目1200010000
9内部有对外主项目1300011000
10内部无对外主项目1400012000
11外部无对外主项目1500013000
12内部有对外主项目1600014000
13内部无对外主项目1700015000
14外部有对外主项目1800016000
15内部有对外主项目1900017000
6内部无对外主项目2000018000
17外部无对外主项目2100019000
18内部有对外主项目2200020000
19内部无对外主项目2300021000
20外部有对外主项目2400022000

2.2 业务说明

公司内部交易遵循一套严格的会计原则,要求根据不同的关联方属性和合同状态采用不同的计算方法来确认最终的成本。具体来说:


3 具体操作

1、如果想复现示例,需要先把示例数据导入到模型中或者把文件导入到业务库中,详细查看:文件

2、示例下载数据:计算列通过CASE WHEN实现动态计算.xls

3、可以点击链接跳转到外部体验环境查看示例。

4、创建计算列可查看:创建计算列


1、把数据导入到产品内置的northwind数据库中,详细查看:文件

2、创建数据模型如下图:

3、创建计算列,表达式如下:

  1. CASE WHEN 语法兼容性

  2. 字符串常量格式限制

表达式内容:

CASE
WHEN ([关联方属性] = '内部' AND [内部分包对应主合同] = '无对外主项目')
OR [关联方属性] <> '内部'
THEN [确认成本]
ELSE [确认成本] - [确认收入]
END

4、创建之后保存数据模型,如果想要查明细,可以直接去创建即席查询进行分析;如果想要汇总统计,可以创建透视分析,根据关联方属性查看调整后的成本: