数据集问题------------if判断取哪个表带casewhen报错了

${if(type=='当月',"

SELECT

case when months = '2024-01' then "1月"

else months end months,

value1,

value2 ,

value3 ,

value4,

yoy,

mom

FROM

test1.demo2

where type = '当月'",

"select * FROM test1.demo2")}

表一的数据:image.png

image.png

FineReport 用户HSfP74230004 发布于 2024-10-17 15:31
1min目标场景问卷 立即参与
回答问题
悬赏:3 F币 + 添加悬赏
提示:增加悬赏、完善问题、追问等操作,可使您的问题被置顶,并向所有关注者发送通知
共1回答
最佳回答
0
CD20160914Lv8专家互助
发布于2024-10-17 15:33(编辑于 2024-10-17 15:36)

type="当月"

用双引号呢。

再看一下它的语句是如何的

image.png

${if(type="当月","

SELECT

case when months = '2024-01' then '1月'

else months end months,

value1,

value2 ,

value3 ,

value4,

yoy,

mom

FROM

test1.demo2

where type = '当月'",

"select * FROM test1.demo2")}

----------------

image.png

  • 用户HSfP74230004 用户HSfP74230004(提问者) 直接报错,不知道是不是case when 的问题,我把case when 摘掉就不会报错
    2024-10-17 15:39 
  • CD20160914 CD20160914 回复 用户HSfP74230004(提问者) 你是什么数据库?
    2024-10-17 15:40 
  • yzmSEwZs0252039 yzmSEwZs0252039 回复 CD20160914 mysql的,现在可以了,但是我替换之后另一段sql的时候又报一样的错了,另一段单独摘出来是可以执行的,请问一下这是啥问题啊? ${if(type="当月"," select case when a.months = '2月' then "1-2月" when a.months = '2月' then "1-2月" when a.months = '3月' then "2-3月" when a.months = '4月' then "3-4月" else a.months end months, value1, value2, value3, value4, yoy, mom from ( SELECT CONCAT(MONTH (CONCAT(months, '-01')), '月') months, value1, value2 , value3 , value4, yoy, mom FROM test1.demo2 where type = '当月') a", "select * FROM test1.demo2")}
    2024-10-17 15:49 
  • CD20160914 CD20160914 回复 yzmSEwZs0252039 你仔细看我是单引号'1-2月' 这里要用单引号
    2024-10-17 15:51 
  • 用户HSfP74230004 用户HSfP74230004(提问者) 回复 CD20160914 可以了!谢谢大佬
    2024-10-17 15:54 
  • 2关注人数
  • 106浏览人数
  • 最后回答于:2024-10-17 15:36
    请选择关闭问题的原因
    确定 取消
    返回顶部