动态分组问题

finereport介绍的动态分组是默认“地区”必须参加分组,那么如果我希望地区字段也是动态的呢,需要怎么改呢,知道的大佬求解决方案哇

SELECT 地区 ${if(len(销售员)=0,"",",销售员")} ${if(len(产品类型)=0,"",",产品类型")} ${if(len(产品)=0,"",",产品")} ,sum(销量) as 销量汇总 FROM 销量where 1=1 ${if(len(销售员)==0,"","and 销售员 in ('" +销售员+ "')")} ${if(len(产品类型)==0,"","and 产品类型 in ('" +产品类型+ "')")} ${if(len(产品)==0,"","and 产品 in ('" +产品+ "')")} group by 地区 ${if(len(销售员)=0,"",",销售员")} ${if(len(产品类型)=0,"",",产品类型")} ${if(len(产品)=0,"",",产品")}

FineReport yuejuntao 发布于 2024-9-29 16:11
1min目标场景问卷 立即参与
回答问题
悬赏:3 F币 + 添加悬赏
提示:增加悬赏、完善问题、追问等操作,可使您的问题被置顶,并向所有关注者发送通知
共3回答
最佳回答
0
华莉星宸Lv7资深互助
发布于2024-9-29 16:14

把地区改成这样?

${if(len(地区) = 0, "", "地区") } 

  • yuejuntao yuejuntao(提问者) 不行,因为不选地区这个返回的就先是逗号${if(len(销售员)=0,"",",销售员")};实际这个问题我解决了一部分,就是在后面添加逗号,然后用总长度减去1,就会把最后的一个逗号去掉;我现在在想,怎么把这个部分的值自动往右拓展
    2024-09-29 17:06 
最佳回答
0
Z4u3z1Lv6专家互助
发布于2024-9-29 16:16

SELECT ${if(len(地区)=0,"''","地区")} [地区]  ${if(len(销售员)=0,"",",销售员")} ${if(len(产品类型)=0,"",",产品类型")} ${if(len(产品)=0,"",",产品")} ,sum(销量) as 销量汇总 FROM 销量 where 1=1 ${if(len(销售员)==0,"","and 销售员 in ('" +销售员+ "')")} ${if(len(产品类型)==0,"","and 产品类型 in ('" +产品类型+ "')")} ${if(len(产品)==0,"","and 产品 in ('" +产品+ "')")} group by ${if(len(地区)=0,"''","地区")} ${if(len(销售员)=0,"",",销售员")} ${if(len(产品类型)=0,"",",产品类型")} ${if(len(产品)=0,"",",产品")}

  • yuejuntao yuejuntao(提问者) ${if(len(地区)=0,"''","地区")} [地区] 这是什么意思,可以解释下嘛?谢谢
    2024-09-29 17:06 
  • Z4u3z1 Z4u3z1 回复 yuejuntao(提问者) 给这个字段一个别名而已。如果为空时这个字段没得名称就给一个别名
    2024-09-29 17:10 
  • yuejuntao yuejuntao(提问者) 回复 Z4u3z1 懂了,感谢,我试试
    2024-09-29 17:14 
最佳回答
0
ID1208Lv6高级互助
发布于2024-9-29 16:16(编辑于 2024-9-29 16:16)

不能所有的字段都是动态的,必须有一个字段是固定的,或者有个参数是有默认值的,不然整个SQL就是不完整,有问题的

  • yuejuntao yuejuntao(提问者) 可以是可以的,逗号放在字段“销售员、地区等”后面,最后再用总长度减去1就可以的,但是我现在在想着怎么将这个参数传到sql中自动拓展
    2024-09-29 17:08 
  • yuejuntao yuejuntao(提问者) 比如这样:if(and(len($aa) ==0,len($bb) ==0),"", left( CONCATENATE( if(len($aa) == 0,"",CONCATENATE(aa,",")), if(len($bb) == 0,"",CONCATENATE(bb,",")) ), len( CONCATENATE( if(len($aa) == 0,"",CONCATENATE(aa,",")), if(len($bb) == 0,"",CONCATENATE(bb,",")) ) )-1 ) )
    2024-09-29 17:11 
  • 3关注人数
  • 121浏览人数
  • 最后回答于:2024-9-29 16:16
    请选择关闭问题的原因
    确定 取消
    返回顶部