在数据源中创建计算所得列

Objective

After completing this lesson, you will be able to 在 SAP SuccessFactors 故事报告的数据源中创建计算列。

计算所得列创建

计算所得列创建新的输出列,并在运行时根据表达式的结果计算其值。例如,如果要针对员工的 职位信息 创建查询,并且想要报告其雇佣持续时间,则可以创建计算列 职位任期 ,该列将显示当前日期与员工录用日期之间的年份。

要创建计算所得列,请完成以下步骤。

  1. 导航至查询设计器。
  2. 在"数据"部分下,选择"创建计算所得列"图标。

    将出现"列概览"对话框。

  3. 转到"计算所得列"选项卡。
  4. 选择添加计算列链接。

    将出现"计算所得列"对话框。

  5. 在"说明"中输入列 ID 并输入计算所得列的名称。
  6. 在编辑公式部分,使用可用的函数、条件和运算符创建表达式,然后选择格式以验证表达式是否正确。

    以下部分中的示例将对此进行更详细的描述。

  7. 选择确定将计算列添加到报表中的列列表。

    该列显示在"列概览"对话框的"计算所得列"部分中。

  8. 如果不想在查询输出中显示计算所得列,请关闭"在网格中显示"开关。
  9. 选择确定。
“列概览”屏幕的屏幕截图。“计算所得列”和“添加计算所得列”会突出显示。

计算列视频教程

表达式构建

表达式定义计算所得列。计算所得列构建为公式。公式由字段、常量、函数、条件和运算符组成。如果不确定如何构建所需的公式,则可以手动键入公式或使用公式编辑器。

  • 字段:字段显示在公式中,语法为 [Schema#Table#Field]。您可以通过输入字段描述来选择查询中的字段。
  • 值:在""中添加文本,将数字添加为值,输入日期为 #YYYY-MM-DD#。
  • 函数、条件和运算符:许多 将显示为 FUNCTION() 或单个标识符,例如 >。

    :许多 将显示为 FUNCTION() 或单个标识符,例如 >。

注意

只能从查询中存在的表中选择字段。

构建表达式时,请注意以下事项:

开始键入时,提示列表会显示与键入的文本匹配的所有可用选项(包括公式和字段)。该列表显示字段标识符和字段说明的值。

除手动键入公式外,还可以执行以下操作:

  • 按(键盘上的)CTRL + SPACE 从公式中对该位置有效的值列表中进行选择
  • 键入 [ 作为字段列表。
  • 如果从提示列表中选择公式,则会在公式输入栏中自动输入模板。
  • 将鼠标指针移动到模板上方时,将显示简短的帮助文本描述。
表达式构造的屏幕截图。它显示说明和标识、用于键入公式的文本框以及包含各种操作(如 ABS()、CONCAT()、CONTAIN() 等)的按钮的函数列表。

表达式构建示例:文本连接

串联是连接两个字符串,在本例中为文本字段。

例如,可以创建将显示用户全名的文本串联:

输入示例:名字字段 (Kenneth)、SPACE、姓氏字段 (Roden)

示例输出:Kenneth Roden

要连接字段,可以使用 CONCAT() 函数

示例表达式: CONCAT( [User#Basic User Information#First Name], CONCAT( " ", [User#Basic User Information#Last Name] ) )

文本串联的示例,如先前文本中所述。

表达式构建示例:数字公式

使用数字公式计算总和、差值、产物和商。首先,选择数据类型数字,并使用相应的运算符向"条件编辑器"添加两个或多个字段。例如,可以创建一个公式,用于计算"新工资"和"当前工资"中的差额:

  • 输入示例:新工资 (170,000)、当前工资 (165,000)
  • 示例输出:5,000

要计算值,可以使用运算符 (+ - * /) 以及一些函数,例如 POWER()、ROUND()

示例表达式:

  • [薪酬 (Employee Central)#薪酬信息#新工资] -
  • [薪酬 (Employee Central)#薪酬信息#当前工资]

数字公式示例,如先前文本中所述。

表达式构造示例:日期公式

日期公式使用存储日期值的字段。存在多种用于处理日期的函数。

例如,您可以计算自当前录用日期起的天数:

  • 输入示例:CurrentDate ()、Hire Date、2018-04-01
  • 示例输出:418

许多函数使用日期字段,例如 DAYS_BETWEEN()、YEAR()、ADDDAYTODATE()、

示例表达式: DAYS_BETWEEN([User#Basic User Information#Hire Date], CURRENTDATE() )

示例数据公式,如先前文本中所述。

表达式构建示例:重贴标签的条件表达式

IF() 函数比较两组或更多组数据并测试结果。如果结果为真,则采用第二个参数指令;如果不是,则采用第三个参数指令。可以嵌套 IF 以包括两个以上的可能结果。

例如,您可能希望将性别字段中存储的值替换为每个记录的不同标签:

  • 输入示例:性别 (M)
  • 示例输出:男性

使用一个或多个 IF 函数构建条件逻辑。

示例表达式: IF([User#Basic User Information#Gender]="M","Male" ,"Female")

示例公式,如先前文本中所述。

表达式构建示例:计数或比率的条件表达式

IF() 也可用于获取计数(项目总数)和比率(百分比)。

例如,您可能想要包括部门中的在职员工数。在这种情况下,您可以包括一个列,该列将为在职员工显示值 1,对非活动员工显示值 0。显示数据时,可以对总计数的列求和,也可以为每个产品组显示。

  • 示例输入:状态(活动用户)
  • 示例输出:1

使用一个或多个 IF 函数构建条件逻辑。

示例表达式: IF([User#Basic User Information#Status_Description]="Active User",1 , 0 )

示例公式,如先前文本中所述。

交互:连接查询中的文本字段

业务示例

在本练习中,您将通过连接要添加到员工信息查询中的名字和姓氏文本字段来创建全名计算列。

摘要

  • 计算列通过在运行时根据特定表达式或公式计算值来创建新的输出列。
  • 公式是使用字段、常量、函数、条件和数学运算符的组合构建的。
  • CONCAT() 函数用于连接文本字符串,例如将名字和姓氏组合成单个字段。
  • 基于日期的计算使用 DAYS_BETWEEN() 等函数来确定持续时间,例如员工的总任期。
  • IF() 函数允许条件逻辑,使用户能够重新标记数据或创建计数和比率的值。