关于参数问题

${if(len(col)=0,'*',replace(col,'count','sum(count)'))}

如果我有多个字段需要合计,需要怎么写当参数col不为空,“abc,count,jin”只把count 转换成 sum(count),我还需要把 jin 也转换成 sum(jin)

需要怎么写 这个。

${if(len(col)<1,"","group by "+replace(col,',count',''))}

后面这个GROUP BY  也需要怎么写

FineReport loveqw20087 发布于 2022-5-16 23:10
1min目标场景问卷 立即参与
回答问题
悬赏:3 F币 + 添加悬赏
提示:增加悬赏、完善问题、追问等操作,可使您的问题被置顶,并向所有关注者发送通知
共3回答
最佳回答
0
Z4u3z1Lv6专家互助
发布于2022-5-17 09:35

SELECT ${if(len(col)==0,"*",REPLACE(REPLACE(col,"count","SUM(count) as 'sum_count'"),"jin","SUM(jin) as 'sum_jin'"))} FROM STSCORE ${if(len(col)==0,"",CONCATENATE("GROUP BY ",REPLACE(REPLACE(col,",count",""),",jin","")))}

image.png

最佳回答
0
shirokoLv6资深互助
发布于2022-5-17 01:34

完全可以一个个分开写,不用弄很绕的replace,看起来更清晰

select 

${if(len(col)=0,'abc','abc')}

,

${if(len(col)=0,'count','sum(count)count')}

,

${if(len(col)=0,'jin','sum(jin) jin')}

from xxx     -- 当然第一个abc不变化可以直接省了不用公式

group by 也是一样了

  • loveqw20087 loveqw20087(提问者) 不行哦,已经试过了
    2022-05-17 06:09 
  • shiroko shiroko 回复 loveqw20087(提问者) 报什么错误?group by要写一致的字段,不然会报错的
    2022-05-17 08:07 
最佳回答
0
yzm314849Lv5见习互助
发布于2022-5-17 09:04

SELECT sj as date_time,

${if(len(BU)=0,"--","BU,")}

${if(len(TYPE_TREE)=0,"--","'class' as class,")}

${if(len(stock_type)=0,"--","'stock_type' as stock_type,")}

round(SUM(PNL_QTY),1) AS PNL_QTY,

round(SUM(SUB_QTY),1) AS SUB_QTY,ACT_PLAN

FROM kc_sales_ty_remark

WHERE 1=1

${if(len(BU)==0,"--","") } and BU IN ('${substitute(BU,",","','")}')

and YEAR=TO_CHAR(SYSDATE,'YYYY')

GROUP BY year,sj,ACT_PLAN

${if(len(BU)=0,"--",",BU")}

 大概格式就这样。剩下的要根据你的需求来改

  • 4关注人数
  • 311浏览人数
  • 最后回答于:2022-5-17 09:35
    请选择关闭问题的原因
    确定 取消
    返回顶部