--用到,case when语句,以及listagg
--整个流程控制语句
declaretxtsqlcostitemvarchar(8000); --case when 行转列语句
selectsqltxtcostitem varchar(8000); --case when 行转列语句后查询字段
txtsqlcostitemex varchar(8000); --case when 行转列语句ex
selectsqltxtcostitemex varchar(8000); --case when 行转列语句后查询字段ex
selectsqltxt varchar(8000); --定义查询字段变量
sqltxtcostitem varchar(8000); --整个子查询语句
begin
select listagg('sum(nvl(case when materialofcostid=''' ||to_char(materialofcostid)||
'''then TspTaskVendorApportItems.vtaxinvalue end,0)) as vtaxinvalue' ||to_char(MaterialCode),',') within group(order bymaterialofcostid, MaterialCode) costitemvalue,
listagg('vtaxinvalue' || to_char(MaterialCode), ',') within group(order bymaterialofcostid, MaterialCode) costitems,
listagg('sum(nvl(case when materialofcostid=''&#