请教一下我的数据集里面显示为空网页显示报错是什么情况

代码是这样的    ******${switch(rylx,"所负责的项目",",leader_name as renyuan ","(总院领导)所主管的项目",",approver_name as renyuan ","(部门领导)所分管的项目",",auditor_name as renyuan ","所负责的外委课题",",responsible_user_name as renyuan ","筛选条件:无","")}  from  ******   where 1=1 ${if(rylx = "筛选条件:无","",if(len(renyuan) == 0,"","and renyuan = '" + renyuan + "'"))}  我在数据集里预览下拉框为所负责的项目  renyuan选择不在所负责项目里有数据的时候  在数据集里是空的  但是我的网页上报错提示找不到   错误代码:11300001 数据集 [ds1] 配置错误Unknown column 'renyuan' in 'where clause'

FineReport 用户rMHep1215 发布于 2022-9-27 20:24 (编辑于 2022-9-27 22:13)
1min目标场景问卷 立即参与
回答问题
悬赏:3 F币 + 添加悬赏
提示:增加悬赏、完善问题、追问等操作,可使您的问题被置顶,并向所有关注者发送通知
共3回答
最佳回答
0
RiveryLv5中级互助
发布于2022-9-28 09:26

你是不是数据字典里面括号用的中文的,数据集里面用的英文的

最佳回答
0
weibwLv7高级互助
发布于2022-9-27 20:50(编辑于 2022-9-27 21:01)

你这个结构,一旦renyuan不为空,那SQL语句就是错的啊

你应该在where后面加个1=1

image.png

  • 用户rMHep1215 用户rMHep1215(提问者) where 1=1我加了 加在前面了 没写出来 前面也有结构 是1=1 ${} 后面跟的这个 IF
    2022-09-27 22:07 
  • 用户rMHep1215 用户rMHep1215(提问者) SQL语句预览数据集的时候没报错 但是在主页面的时候不行提示错误 Unknown column \'renyuan\' in \'where clause\'
    2022-09-27 22:08 
  • 用户rMHep1215 用户rMHep1215(提问者) 人员不为空 且不在 (总院领导)所主管的项目 里的时候 数据集里是空的 但是前台页面提示报错 是SQL哪里的问题呢
    2022-09-27 22:09 
  • weibw weibw 回复 用户rMHep1215(提问者) 反正看你提供的已有的SQL,我只能定位问题到这,你要不提供一下完整的SQL的截图?
    2022-09-27 22:31 
  • 用户rMHep1215 用户rMHep1215(提问者) 回复 weibw SELECT project_name,leader_name,current_progress,previous_progress,research_dept_name,proj_from,project_type_name,start_time,end_time ${if(外委课题 = \'显示\',\',deleg_subj_name\',\"\")} from (select * ,left(start_time,4)as year ,case when end_time > now() then \'进行中\' else \'已结束\' end as \'是否完工\' ${switch(rylx,\"所负责的项目\",\",leader_name as renyuan \",\"(总院领导)所主管的项目\",\",approver_name as renyuan \",\"(部门领导)所分管的项目\",\",auditor_name as renyuan \",\"所负责的外委课题\",\",responsible_user_name as renyuan \",\"筛选条件:无\",\"\")} FROM `zy-data-theme`.t_proj_query_list where end_time<>\' \')temp1 where 1=1 ${if(or(len(project_type_name) == 0,project_type_name = \"所有\"),\"\",\"and project_type_name = \'\" + project_type_name + \"\'\")} ${if(or(len(pm_type) == 0,pm_type = \"所有\"),\"\",\"and pm_type = \'\" + pm_type + \"\'\")} ${if(or(len(project_type_name) == 0,project_type_name = \"所有\"),\"\",\"and project_type_name = \'\" + project_type_name + \"\'\")} ${if(len(project_name) == 0,\"\",\"and project_name like \'%\" + project_name + \"%\'\")} ${if(or(len(year) == 0,year = \"所有\"),\"\",\"and year = \'\" + year + \"\'\")} ${if(len(deleg_subj_name) == 0,\"\",\"and deleg_subj_name like \'%\" + deleg_subj_name + \"%\'\")} ${if(or(len(是否完工) == 0,是否完工 = \"所有\"),\"\",\"and 是否完工 = \'\" + 是否完工 + \"\'\")} ${if(or(len(research_dept_name) == 0,research_dept_name = \"所有\"),\"\",\"and research_dept_name = \'\" + research_dept_name + \"\'\")} ${if(rylx != \'筛选条件:无\',if(len(renyuan) == 0,\"\",\"and renyuan = \'\" + renyuan + \"\'\"),\'\')}
    2022-09-27 23:25 
最佳回答
0
CD20160914Lv8专家互助
发布于2022-9-28 09:00

你的语句目前看这样会报错:

假如参数:renyuan   里面录入了值,但是你的参数rylx 如果没有录入值,那么就会报这个错。因为你在子查询里面会根据rylx参数去返回字段renyuan。如果rylx没有录入参数。那么其实不返回 renyuan别名字段的。所以当参数renyuan有值,rylx没有值的时候。就会出错

类似如下语句:

SELECT 

project_name,

leader_name,

current_progress,

previous_progress,

research_dept_name,

proj_from,

project_type_name,

start_time,

end_time ,deleg_subj_name 

from (select * ,

left(start_time,

4)as year ,

case when end_time > now() then '进行中' else '已结束' end as '是否完工'  

FROM `zy-data-theme`.t_proj_query_list 

where end_time<>' ')temp1

where 1=1  

and renyuan = '测试'  /*这个renyuan不在上面子查询temp1中有返回*/

  • 2关注人数
  • 286浏览人数
  • 最后回答于:2022-9-28 09:26
    请选择关闭问题的原因
    确定 取消
    返回顶部