永洪社区

标题: 报错:执行数据失败:执行SQL失败:“Parameter index out of ran... [打印本页]

作者: frank688    时间: 2022-9-1 16:39
标题: 报错:执行数据失败:执行SQL失败:“Parameter index out of ran...
执行数据失败:执行SQL失败:“Parameter index out of range (1 > number of parameters, which is 0).”

我目前有两种方法可解决该问题:
一是在外面包一层 select * from ( xx )a 这样可以解决
二是不勾选:数据库内计算

但是第一种方法会让查询速度变慢,第二种会让前端变的很卡,请问如何解决呢?


sql如下:
SELECT
        a.`统计日期`,
        case
        when ?{weidu} = '0' then b.`大区支行机构号`
        when ?{weidu} = '1' then a.`机构号`
        when ?{weidu} = '2' then 'XXX'
        when ?{weidu} = '3' then (case when a.`柜员号` = '' then '无' else a.`柜员号` end)
        else '未知' end as '机构号',

        case
        when ?{weidu} = '0' then b.`大区支行机构名称`
        when ?{weidu} = '1' then a.`机构简称`
        when ?{weidu} = '2' then 'XXX'
        when ?{weidu} = '3' then (case when a.`客户经理名称` = '' then '无' else a.`客户经理名称` end)
        else '未知' end as '机构简称',
        a.`机构号` as '机构号原始',
        a.`机构简称` as '机构简称原始',
        ?{weidu} as `统计维度`,
        a.`柜员号`,
        a.`客户经理名称`,
        a.`产品名称`,
        a.`建档户数`,
        a.`授信户数`,
        a.`用信户数`,
        a.`授信金额`,
        a.`贷款余额`,
        b.`大区支行机构号`,
        b.`大区支行机构名称`,
        CONCAT(a.`机构号`,a.`机构简称`) AS `机构简称2`,
        c.`经济档案采集任务数` as `任务数`
FROM
        zgdata.`XXXXXXX` AS a
LEFT JOIN machining.`参数_合并机构号参数表v2`  b on a.`机构号` = b.`机构号` AND b.`产品名称` = '存款与对公贷款'
left join machining.`参数_存款_存贷指标参数表` c on a.`机构号` = c.`机构号`



作者: Fiona    时间: 2022-9-1 16:39
?{weidu}  改成 ?{@weidu}
作者: lwaaa    时间: 2022-9-1 17:10
把 ?{weidu} = '0'  改成 1=1 <weidu>and  '0'= ?{weidu}</weidu> 试试
作者: yhdata_yzm    时间: 2022-9-1 18:37
参考楼上的试试




欢迎光临 永洪社区 (https://club.yonghongtech.com/) Powered by Discuz! X3.4