在ABAP CDS视图中,可以从另一个CDS视图中进行选择,这是一种非常有用的技术,可以提高代码的复用性和可维护性。
以下是一个示例代码:
/定义一个CDS视图/ @AbapCatalog.sqlViewName: 'ZVW_EMPLOYEE' @AbapCatalog.compiler.compareFilter: true define view Z_CDS_EMPLOYEE as select from Y_EMPLOYEE { key EMPLOYEE_ID, FIRST_NAME, LAST_NAME, DATE_OF_BIRTH, NATIONALITY }
/从另一个CDS视图中进行选择/ @AbapCatalog.sqlViewName: 'ZVW_EMPLOYEE_DETAILS' @AbapCatalog.compiler.compareFilter: true define view Z_CDS_EMPLOYEE_DETAILS as select from Z_CDS_EMPLOYEE { key EMPLOYEE_ID, FIRST_NAME, LAST_NAME, DATE_OF_BIRTH, NATIONALITY, (select count(*) from Z_CDS_EMPLOYEE where NATIONALITY = "NATIONALITY") as "COUNT_EMPLOYEES" }
在这个示例中,我们定义了一个名为“Z_CDS_EMPLOYEE”的CDS视图,它从Y_EMPLOYEE表中选择了几个字段。然后,我们又定义了一个名为“Z_CDS_EMPLOYEE_DETAILS”的CDS视图,它从“Z_CDS_EMPLOYEE”中选择了所有字段,并添加了一个额外的字段,该字段显示相同国籍的员工数量。
注意,我们可以直接从“Z_CDS_EMPLOYEE”视图中选择字段,并在“Z_CDS_EMPLOYEE_DETAILS”视图中使用它们,而不必重新定义这些字段。
最后,使用“Z_CDS_EMPLOYEE_DETAILS”视图来获取员工的详细信息,我们可以轻松地获取每个员工的国籍和相同国籍的员工数量。
以上是如何从另一个CDS视图中进行选择的示例,它展示了ABAP CDS视图的