Olá,
Na definição original do CDS, o erro de sintaxe é o seguinte:
Se eu tentar com a sugestão da Sandra, dá outro erro de sintaxe que é o seguinte:
O problema principal com este tema é o uso de alias com a condição "having". Encontrei um exemplo fornecido pela SAP que se parece assim:
@AbapCatalog.sqlViewName: 'SALES_ORDER_VW'
define view sales_order as
select from snwd_so
inner join
snwd_bpa on buyer_guid = snwd_bpa.node_key
{ key bp_role as role, //p.ej. cliente o proveedor
count(distinct buyer_guid) as partners_count,
sum(snwd_so.gross_amount) as sum_gross_amount }
where snwd_so.currency_code = 'EUR'
group by bp_role
having sum(snwd_so.gross_amount) > 100000.00;
Se eu fizer uma pequena alteração neste exemplo, substituindo "sum(snwd_so.gross_amount)" pelo alias "sum_gross_amount", ele relataria o mesmo erro de sintaxe "Coluna sum_gross_amount não é conhecida".
@AbapCatalog.sqlViewName: 'SALES_ORDER_VW'
define view sales_order as
select from snwd_so
inner join
snwd_bpa on buyer_guid = snwd_bpa.node_key
{ key bp_role as role, //p.ej. cliente o proveedor
count(distinct buyer_guid) as partners_count,
sum(snwd_so.gross_amount) as sum_gross_amount }
where snwd_so.currency_code = 'EUR'
group by bp_role
having sum_gross_amount > 100000.00;