SQL~

这个加参数的写法哪里不对吗?

${if(p_dairiten_pattern <>'',

"select a.*,b.* from mv勘定先属性マスタ a, od_アプローチシート b where a.サブ代理店コード=b.代理店コードサブコード
and a.部担コード='"+p_kashisha+"' and substr(b.代理店コードサブコード,1,5)='"+p_dairiten+"' and b.満期日 between '"+p_year+"'"+p_month+"'01 and '"+p_year+"'"+p_month+"'31",

"select a.*,b.* from mv勘定先属性マスタ a, od_アプローチシート b where a.サブ代理店コード=b.代理店コードサブコード
and substr(b.代理店コードサブコード,1,5) IN (select 代理店コード 
from m代理店パターン where dairi_pattern_id = '"+p_dairiten_pattern+"') and b.満期日 between '"+p_year+"'"+p_month+"'01 and '"+p_year+"'"+p_month+"'31")}


minamoto 发布于 2020-11-9 16:48 (编辑于 2020-11-9 16:49)
1min目标场景问卷 立即参与
回答问题
悬赏:3 F币 + 添加悬赏
提示:增加悬赏、完善问题、追问等操作,可使您的问题被置顶,并向所有关注者发送通知
共5回答
最佳回答
0
shirokoLv6资深互助
发布于2021-6-4 09:40

between '"+p_year+"'"+p_month+"'01 and

这个错了,如果 参数分别是2020 10,这个拼接结果会变成 between '2020'10'01 and 

改:

${if(p_dairiten_pattern <>'',

 

"select a.*,b.* from mv勘定先属性マスタ a, od_アプローチシート b where a.サブ代理店コード=b.代理店コードサブコード

and a.部担コード='"+p_kashisha+"' and substr(b.代理店コードサブコード,1,5)='"+p_dairiten+"' and b.満期日 between '"+CONCATENATE(p_year,p_month,'01')+"' and '"+CONCATENATE(p_year,p_month,'31')+"'",

 

"select a.*,b.* from mv勘定先属性マスタ a, od_アプローチシート b where a.サブ代理店コード=b.代理店コードサブコード

and substr(b.代理店コードサブコード,1,5) IN (select 代理店コード 

from m代理店パターン where dairi_pattern_id = '"+p_dairiten_pattern+"') and b.満期日 between '"+CONCATENATE(p_year,p_month,'01')+"' and '"+CONCATENATE(p_year,p_month,'31')+"'")}

最佳回答
0
ScyalcireLv7中级互助
发布于2020-11-9 16:49(编辑于 2020-11-9 16:49)

报了什么错

最佳回答
0
张洪威Lv6高级互助
发布于2020-11-9 16:58

你数据库里面这个year month之间是用'引号拼接的吗?

2020'10 这种格式的between吗。

最佳回答
0
jongwangLv6中级互助
发布于2020-11-9 18:47
${if(p_dairiten_pattern <>'',
 
"select a.*,b.* from mv勘定先属性マスタ a, od_アプローチシート b where a.サブ代理店コード=b.代理店コードサブコード
and a.部担コード='"+p_kashisha+"' and substr(b.代理店コードサブコード,1,5)='"+p_dairiten+"' and b.満期日 between '"+p_year+p_month+"01' and '"+p_year+p_month+"31'",
 
"select a.*,b.* from mv勘定先属性マスタ a, od_アプローチシート b where a.サブ代理店コード=b.代理店コードサブコード
and substr(b.代理店コードサブコード,1,5) IN (select 代理店コード 
from m代理店パターン where dairi_pattern_id = '"+p_dairiten_pattern+"') and b.満期日 between '"+p_year+p_month+"01' and '"+p_year+p_month+"31'")}



试下看看

最佳回答
0
liu.yangLv2初级互助
发布于2021-6-4 09:46(编辑于 2021-6-4 09:47)

p_year  、p_month  、01  你想拼出一个完整的 日期对吧

'$p_year'||'$p_month'||'01'

不同数据库 拼接字符串用的不一样   ||   或者 +   或者 concat()

|| 或者 +  可能需要转义一下  用  \

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