数据集其中一个参数无法成功运行,报错又括号)错误,我排查了没找出来

数据集是这样的:

SELECT

${if(type='date'," CONVERT(varchar(100),a.BillDate,20)) as riqi ,","")}

${if(type='month', " CONVERT(varchar(7),a.BillDate,20)) as riqi,  ","")}

${if(type='year', " CONVERT(varchar(4),a.BillDate,20)) as riqi, ","")}

a.ShopID 门店ID,

b.BrandName 品牌,

b.HotelName 门店,

sum(a.Amount) 实际营收,

c.[Value] 计划营收

FROM

[dbo].[DIM_POS_Shop] b

LEFT JOIN [dbo].[FACT_POS_Bill] a ON a.ShopID = b.ShopID

LEFT JOIN [dbo].[FACT_Target_Day] c ON c.ShopID = b.HotelID

where  c.Items = '营收(万元)'

${if(type='date'," and CONVERT(varchar(100),a.BillDate,20) >= '" + 开始日期 + "' and CONVERT(varchar(100),a.BillDate,20)<='" + 结束日期 + "'", "")}

${if(type='month', " and cast(month(CONVERT(varchar(100),a.BillDate,20)) as int) = "+ 月 + " and year(CONVERT(varchar(100),a.BillDate,20)) = '" + 年+"'", "")}

${if(type='year', " and year(CONVERT(varchar(100),a.BillDate,20)) = '" + 年+"'", "")}

${if(len(品牌)==0,"","and b.BrandName in ('"+品牌+"')")}

${if(len(门店)==0,"","and b.HotelName in ('"+门店+"')")}

GROUP BY

a.ShopID,

${if(type='date'," CONVERT(varchar(100),a.BillDate,20)), ","")}

${if(type='month', " CONVERT(varchar(7),a.BillDate,20)),  ","")}

${if(type='year', " CONVERT(varchar(4),a.BillDate,20)), ","")}

b.BrandName,

b.HotelName,

c.[Value]

给开始时间,结束时间,年份默认数据预览时成功的

image.png

给TYPE参数默认值时,就开始报错:

image.png

image.png

image.png

给参数品牌默认值时,预览也是成功的:

image.png

参数的写法有问题吗?

image.png

image.png

百煮味香 发布于 2022-8-25 15:27 (编辑于 2022-8-25 15:45)
1min目标场景问卷 立即参与
回答问题
悬赏:0 F币 + 添加悬赏
提示:增加悬赏、完善问题、追问等操作,可使您的问题被置顶,并向所有关注者发送通知
共3回答
最佳回答
0
yzm339714Lv6中级互助
发布于2022-8-25 15:47(编辑于 2022-8-25 15:47)

image.png

这上面多了个反括号,-。-  group by 里面也是一样

最佳回答
0
runerLv7资深互助
发布于2022-8-25 15:29

image.png

你看sql哪里报错

  • 百煮味香 百煮味香(提问者) SELECT CONVERT(varchar(7),a.BillDate,20)) as riqi a.ShopID 门店ID, b.BrandName 品牌, b.HotelName 门店, sum(a.Amount) 实际营收, c.[Value] 计划营收 FROM [dbo].[DIM_POS_Shop] b LEFT JOIN [dbo].[FACT_POS_Bill] a ON a.ShopID = b.ShopID LEFT JOIN [dbo].[FACT_Target_Day] c ON c.ShopID = b.HotelID where c.Items = \'营收(万元)\' and cast(month(CONVERT(varchar(100),a.BillDate,20)) as int) = 8 and year(CONVERT(varchar(100),a.BillDate,20)) = \'2022\' and b.BrandName in (\'品质川菜\') and b.HotelName in (\'18店-悦百味(银泰in99店)\') GROUP BY a.ShopID, CONVERT(varchar(7),a.BillDate,20)) b.BrandName, b.HotelName, c.[Value]
    2022-08-25 15:32 
最佳回答
0
snrtuemcLv8专家互助
发布于2022-8-25 15:33(编辑于 2022-8-25 15:43)

这边,少了逗号

image.png

改成

image.png

=====================

image.png

  • 百煮味香 百煮味香(提问者) 还有一个)的问题 不知道在哪
    2022-08-25 15:36 
  • snrtuemc snrtuemc 回复 百煮味香(提问者) 同样,在gruop by后面的,里面也要逗号
    2022-08-25 15:39 
  • snrtuemc snrtuemc 回复 百煮味香(提问者) 看修改答案,给你框起来了,这边也要逗号
    2022-08-25 15:43 
  • 百煮味香 百煮味香(提问者) 回复 snrtuemc 还是报错)括号的问题
    2022-08-25 15:44 
  • snrtuemc snrtuemc 回复 百煮味香(提问者) 楼下给出了,还多了半个括号
    2022-08-25 15:52 
  • 4关注人数
  • 277浏览人数
  • 最后回答于:2022-8-25 15:47
    请选择关闭问题的原因
    确定 取消
    返回顶部