找文章 / 找答案
精选问答 更多内容

[数据处理] Sql数据集参数逻辑或怎么处理

xxx404铂金四 显示全部楼层 发表于 2022-3-21 11:16:56 |阅读模式 打印 上一主题 下一主题
1
未解决
Sql数据集做参数过滤要达到这样的效果
clipbord_1647832431753.png
然后我怎么写都报错
以下是我的几种写法
select * from
(
select *,row_number() over (order by 发布时间) as rn
from [**].[dbo].[**]
where 1=1
<区域下拉列表> and 区域=?{区域下拉列表} </区域下拉列表>
OR 区域=?{全国地图区域文本参数} </全国地图区域文本参数>
<上游长三角省文本参数> and 省=?{上游长三角省文本参数} </上游长三角省文本参数>
<上游长三角市文本参数> and 市=?{上游长三角市文本参数} </上游长三角市文本参数>
OR  市=?{省区域地图市文本参数} </省区域地图市文本参数>
) aa
where rn >(?{current_page}-1)*4 and rn <= ?{current_page}*4


select * from
(
select *,row_number() over (order by 发布时间) as rn
from [**].[dbo].[**]
where 1=1
<区域下拉列表> and 区域=?{区域下拉列表} </区域下拉列表>
OR
<全国地图区域文本参数> and 区域=?{全国地图区域文本参数} </全国地图区域文本参数>
<上游长三角省文本参数> and 省=?{上游长三角省文本参数} </上游长三角省文本参数>
<上游长三角市文本参数> and 市=?{上游长三角市文本参数} </上游长三角市文本参数>
OR
<省区域地图市文本参数> and  市=?{省区域地图市文本参数} </省区域地图市文本参数>
) aa
where rn >(?{current_page}-1)*4 and rn <= ?{current_page}*4


select * from
(
select *,row_number() over (order by 发布时间) as rn
from [**].[dbo].[**]
where 1=1
(<区域下拉列表> and 区域=?{区域下拉列表} </区域下拉列表>
OR
<全国地图区域文本参数> and 区域=?{全国地图区域文本参数} </全国地图区域文本参数>)
<上游长三角省文本参数> and 省=?{上游长三角省文本参数} </上游长三角省文本参数>
(<上游长三角市文本参数> and 市=?{上游长三角市文本参数} </上游长三角市文本参数>
OR
<省区域地图市文本参数> and  市=?{省区域地图市文本参数} </省区域地图市文本参数>)
) aa
where rn >(?{current_page}-1)*4 and rn <= ?{current_page}*4

回复

使用道具 举报

精彩评论39

永洪tech-Lerry青铜一 显示全部楼层 发表于 2022-3-21 12:22:50
您试下把参数过滤这部分内容像如下这么写看是否还报错呢:
select *,row_number() over (order by 发布时间) as rn
from [**].[dbo].[**]
where 1=1
<区域下拉列表> and (区域=?{区域下拉列表} </区域下拉列表>
<全国地图区域文本参数>OR 区域=?{全国地图区域文本参数} )</全国地图区域文本参数>
<上游长三角省文本参数> and 省=?{上游长三角省文本参数} </上游长三角省文本参数>
<上游长三角市文本参数> and (市=?{上游长三角市文本参数} </上游长三角市文本参数>
<省区域地图市文本参数> OR  市=?{省区域地图市文本参数} )</省区域地图市文本参数>

另外您可以试下看单独这部分是否报错看一下是哪部分语句出错
回复

使用道具 举报

美滋滋白银二 显示全部楼层 发表于 2022-3-21 13:16:10
具体报了什么错呢?
回复

使用道具 举报

美滋滋白银二 显示全部楼层 发表于 2022-3-21 13:21:47
我建议把or 语句替换成 in 语句
例如 <区域> and 区域 in (?{区域}) </区域>
脚本编辑 param['区域'] = "区域下拉列表,全国地图区域文本参数"
回复

使用道具 举报

xxx404铂金四 显示全部楼层 发表于 2022-3-21 15:08:20
永洪tech-Lerry 发表于 2022-3-21 12:22
您试下把参数过滤这部分内容像如下这么写看是否还报错呢:
select *,row_number() over (order by 发布时间 ...

用这个会报错
执行数据失败:   Related Dashboard: '报表名1207-4_sql20220321150608-7029'   Related Query: '**_tzdt_sjxx'   Related Element: '下拉参数1'   Run user: 'testbi'
Caused by: java.sql.SQLException   执行SQL失败:““)”附近有语法错误。”
回复

使用道具 举报

xxx404铂金四 显示全部楼层 发表于 2022-3-21 15:10:35
美滋滋 发表于 2022-3-21 13:21
我建议把or 语句替换成 in 语句
例如  and 区域 in (?{区域})
脚本编辑 param['区域'] = "区域下拉列表,全 ...

我试试这个方法
回复

使用道具 举报

xxx404铂金四 显示全部楼层 发表于 2022-3-21 15:18:42
美滋滋 发表于 2022-3-21 13:21
我建议把or 语句替换成 in 语句
例如  and 区域 in (?{区域})
脚本编辑 param['区域'] = "区域下拉列表,全 ...

脚本里这句话啥意思啊param['区域'] = "区域下拉列表,全国地图区域文本参数"
回复

使用道具 举报

美滋滋白银二 显示全部楼层 发表于 2022-3-21 15:34:37
xxx404 发表于 2022-3-21 15:18
脚本里这句话啥意思啊param['区域'] = "区域下拉列表,全国地图区域文本参数" ...

你的数据集SQL写成如下:
select * from A
where 1=1
<test>and test1 in ?{test}</test>
报表编辑参数
param['test'] = ["区域下拉列表选择值","全国地图区域文本参数值"]
回复

使用道具 举报

xxx404铂金四 显示全部楼层 发表于 2022-3-21 15:40:15
美滋滋 发表于 2022-3-21 15:34
你的数据集SQL写成如下:
select * from A
where 1=1

好的 我试下
回复

使用道具 举报

美滋滋白银二 显示全部楼层 发表于 2022-3-21 15:45:50

我这边已经试过了,没有问题的,祝你成功
回复

使用道具 举报

高级模式
您需要登录后才可以回帖 登录 | 免费注册

  • 官方微信

    欢迎关注永洪服务号!收费为0,价值无限

    扫码关注
  • 新浪微博

    让每位用户轻松挖掘数据价值!

    访问新浪微博
  • 智能客服
50W

会员等你来哦

Copyright   ©2012-2024  北京永洪商智科技有限公司  (京ICP备12050607) 京公网安备110110802011451号 |《永洪社区协议》
返回顶部