Add CDS view entity example
This commit is contained in:
61
src/zdemo_abap_cds_ve_agg_exp.ddls.asddls
Normal file
61
src/zdemo_abap_cds_ve_agg_exp.ddls.asddls
Normal file
@@ -0,0 +1,61 @@
|
||||
// ABAP CDS cheat sheet example:
|
||||
// Aggregate expressions in the element list of CDS view entities
|
||||
//
|
||||
//////////////////////////------ NOTES ------//////////////////////////////////
|
||||
// - CDS view entity selects from a demo database table
|
||||
// - Demonstrates various aggregate expressions in the element list
|
||||
// - As a prerequisite, run the class zcl_abap_demo_cds_ve to populate the
|
||||
// database tables of the example. Otherwise, no data is displayed.
|
||||
//
|
||||
//////////////////////------ DATA PREVIEW ------///////////////////////////////
|
||||
// - Choose F8 in ADT to open the data preview and check out the data displayed
|
||||
// - For comparing and checking the output, you can also open the data preview
|
||||
// for the database table. In ADT, press and hold CTRL and click the database
|
||||
// table name. In the opened table artifact, choose F8 to open the data preview.
|
||||
//
|
||||
//////////////////////////////////////////////////////////////////////////////////////////////////////////////////
|
||||
|
||||
@AccessControl.authorizationCheck: #NOT_REQUIRED
|
||||
@EndUserText.label: 'CDS view entity: Aggregate expressions'
|
||||
define view entity zdemo_abap_cds_ve_agg_exp
|
||||
as select from zdemo_abap_fli
|
||||
|
||||
{
|
||||
|
||||
// The SELECT list intentionally includes few fields only to focus on the effect of aggregate expressions.
|
||||
key carrid,
|
||||
currency,
|
||||
|
||||
// -------- Aggregate expressions --------
|
||||
// - Aggregate expressions can be used as elements of a SELECT list. Other positions are possible.
|
||||
// - An alias name must be specified.
|
||||
// - A GROUP BY clause is required. It must list all non-aggregated fields from the SELECT list.
|
||||
// - Additions: If ALL is used, all rows in the result set are respected. This the default setting.
|
||||
// If DISTINCT is used, only distinct values of an argument are respected.
|
||||
|
||||
// AVG (Returns the average value of an argument)
|
||||
avg( seatsocc as abap.dec(15,2)) as avg_seats_occ,
|
||||
avg( cast(paymentsum as abap.dec(15, 2)) as abap.dec(15,2)) as avg_paysum,
|
||||
|
||||
// SUM (Returns the sum of an argument)
|
||||
// Since a currency field is used in the example, an annotatin is required.
|
||||
@Semantics.amount.currencyCode: 'currency'
|
||||
sum(paymentsum) as total_paysum,
|
||||
|
||||
// MIN (Returns the least value of an argument)
|
||||
min( seatsocc ) as min_occ_seats,
|
||||
|
||||
// MAX (Returns the greatest value of an argument)
|
||||
max( seatsocc ) as max_occ_seats,
|
||||
max( all seatsocc ) as max_occ_seats_all, //Same result as above, ALL is optional
|
||||
|
||||
// COUNT (Returns counted lines)
|
||||
count(*) as cnt, // * means that all lines are respected
|
||||
count(distinct planetype) as cnt_planetype //DISTINCT means that the number of dinstinct values if an argument is counted;
|
||||
//e.g. if 3 is returned, it means there are 3 different plane types among the result set
|
||||
|
||||
}
|
||||
//GROUP BY clause that lists all non-aggregated fields from the SELECT list
|
||||
group by
|
||||
carrid,
|
||||
currency
|
||||
Reference in New Issue
Block a user