麻烦看下我这个SQL最外层的查询语句怎么加一个where条件

where条件的内容就是判断chanye 和chanpinxian 这俩单选框里面有没有值,如果有值的话,就让F_MKMC = chanye,F_CPXMC = chanpinxian

这样写的话读取不到参数,改成$又只能读取到chanye

${if(         a = "1",         if(             len(quyu) == 0 || quyu = "集团",             "                 SELECT f_gjgsmc,F_ZGSMC,                 sum(应收账款) 应收账款,                 sum(未开票应收) 未开票应收,                 sum(已开票应收) as 已开票应收,                 sum(超期应收) 超期应收,                 sum(超期未开票) 超期未开票             from(                     (                         SELECT f_gjgsmc,F_ZGSMC,F_MKMC,F_CPXMC,                             SUM(f_ysje) / 10000 as 应收账款,                             SUM(f_wkpje) / 10000 as 未开票应收,                             (sum(f_kphsje) - sum(f_hkje)) / 10000 as 已开票应收,                             NULL as 超期应收,                             NULL as 超期未开票                         FROM dwd_db.dwd_pulianyszk                         WHERE LENGTH(f_srrq) >= 8                             AND f_gjgsmc IS NOT NULL                             AND f_gjgsmc != ' ' and F_GJGS in ('10001','10002','10003','10004')                         GROUP BY f_gjgsmc,F_ZGSMC,F_MKMC,F_CPXMC                     )                     UNION ALL                     (                         SELECT f_gjgsmc,F_ZGSMC,F_MKMC,F_CPXMC,                             NULL as 应收账款,                             NULL as 未开票应收,                             NULL as 已开票应收,                             SUM(f_ysje) / 10000 as 超期应收,                             SUM(f_wkpje) / 10000 as 超期未开票                         FROM dwd_db.dwd_pulianyszk                         WHERE LENGTH(f_srrq) >= 8                             AND (CURRENT_DATE - f_srrq::date) > f_yjbz                             AND f_gjgsmc IS NOT NULL                             AND f_gjgsmc != ' ' and F_GJGS in ('10001','10002','10003','10004')                         GROUP BY f_gjgsmc,F_ZGSMC,F_MKMC,F_CPXMC                     )                 )              GROUP BY f_gjgsmc,F_ZGSMC             order by f_gjgsmc,F_ZGSMC     ",             ""         ),         if(             a = "2",             "",             ""         )     ) }

FineReport yzmi4wK81733224 发布于 2023-9-11 16:07 (编辑于 2023-9-11 18:28)
1min目标场景问卷 立即参与
回答问题
悬赏:3 F币 + 添加悬赏
提示:增加悬赏、完善问题、追问等操作,可使您的问题被置顶,并向所有关注者发送通知
共2回答
最佳回答
0
LalaLv5见习互助
发布于2023-9-11 16:45

因为你只写了chanye的参数,chanpinxian的参数没写,所以获取不到

最佳回答
0
Z4u3z1Lv6专家互助
发布于2023-9-11 16:10

改成 ${if(len(chanye)==0,""," and f_mkmc='"+chanye+"'")}

image.png

  • yzmi4wK81733224 yzmi4wK81733224(提问者) 试了下这个也是只能读取到chanye了,我再看下
    2023-09-11 16:29 
  • Z4u3z1 Z4u3z1 回复 yzmi4wK81733224(提问者) 上面的断句有点困难 你能查询排一下版么
    2023-09-11 16:35 
  • 2关注人数
  • 219浏览人数
  • 最后回答于:2023-9-11 18:28
    请选择关闭问题的原因
    确定 取消
    返回顶部