sqlserver ssrs-SSRS中多值参数怎么处理

问题描述

SSRS中多值参数怎么处理

我的rdl文件中有一个多值参数@pn_id,
当用户输入多个值后,会进行查询,不在table中的id,会给出一个not exists并显示在页面Matrix中
我的sql语句是

declare  @tb table(b varchar(max))
        if @pn_id is not null
        begin
                    set @pn_id= REPLACE(@pn_id,'''','')
        insert into @tb select @pn_id b ;
        select c.split,'Not Exists' as Pstate from (
        select SUBSTRING(t.b, number ,CHARINDEX(',',t.b+',',number)-number) as split
        from @tb t,master..spt_values s where s.number >=1 and s.type = 'P' and SUBSTRING(','+t.b,s.number,1) = ',' ) c where c.split not in
        (SELECT   pn_id FROM  pentable
        end
        else
        begin
        select null as split, null as Psatet
        end`

我在报表中使用这段句子的时候是报错的,应该怎么修改才能达到效果呢?
当我执行 这个句子的时候是可以得出结果的,但一旦改为动态执行时,却报错

select * from pentable where pen_id in(@pn_id)

decalre @sql varchar(max)
set @sql='select * from pentable where pen_id in(+@pn_id+)'

下面这个句子报表中执行的时候报错,为什么呢? 求解决办法啊

解决方案

应该改成set @sql='select * from pentable where pen_id in('+@pn_id+')'

时间: 2024-09-18 13:27:02

sqlserver ssrs-SSRS中多值参数怎么处理的相关文章

从SQLSERVER/MYSQL数据库中随机取一条或者N条记录

原文:从SQLSERVER/MYSQL数据库中随机取一条或者N条记录 从SQLSERVER/MYSQL数据库中随机取一条或者N条记录 很多人都知道使用rand()函数但是怎麽使用可能不是每个人都知道 建立测试表 USE [sss] GO CREATE TABLE RANDTEST(ID INT DEFAULT RAND()*100,NAME NVARCHAR(200) DEFAULT 'nihao') GO CREATE INDEX IX_RANDTEST_ID ON RANDTEST(ID)

怎样在wps表格中实现两数除法

  在wps表格中实现两数除法的方法: 首先,双击打开WPS中的Excel表格,新建一张表格,并重命名为"除法.xls", 如下图所示: 双击打开"除法.xls",表格里创建一个数据表格,统计学生分数表格,如下图所示: 接着,给表格几列赋值,学生科目成绩,如下图所示: 为了让表格看起来更清晰明了,给表格添加外边框和内边框,如下图所示: 在表格最后两列中,如"语文/数学"第一行,输入"=", 如下图所示: 然后,用鼠标选中第一行

用于统计项目中代码总行数的Python脚本分享

  这篇文章主要介绍了用于统计项目中代码总行数的Python脚本分享,本文直接给出实现代码,需要的朋友可以参考下 最近需要统计一下项目中代码的总行数,写了一个Python小程序,不得不说Python是多么的简洁,如果用Java写至少是现在代码的2倍. [code] import os path="/Users/rony/workspace/ecommerce/ecommerce/hot-deploy/" global totalcount totalcount =0 def cfile

c++中 int十进制数如何转int 16进制数

问题描述 c++中 int十进制数如何转int 16进制数 例如,我有int a = 100:但是我要获得int b = 0x100:如何把a转换成b. 解决方案 你这个只能是转成16进制字符串,如果是数值的话,你可以直接这样写,在内存中,不管什么进制,都是以二进制表示 解决方案二: int转6位16进制数. 解决方案三: 不妨看看 char *itoa( int value, char *string,int radix); 第三个参数是进制 解决方案四: 可以先转换成字符串,然后通过字符串再

ios-异步中最多任务数

问题描述 异步中最多任务数 IOS中,dispatch_async最多能创建多少任务数? for(i=0 ; i<=? ; i++) { dispatch_async(dispatch_get_global_queue(DISPATCH_QUEUE_PRIORITY_DEFAULT, 0), ^{ // some code }); } 有什么限制吗? 解决方案 印象是48个.........

在sqlserver 数据库表中插入中文,查看表,中文显示乱码

问题描述 在sqlserver 数据库表中插入中文,查看表,中文显示乱码 sprintf(szSQL,"insert into %s (fromid,toid,time,msg,fontface,fontsize,fontcolor,fontflags) VALUES (%u,%u,%u,'%s','%s',%u,%u,%u)",TABLE_IM_MSG,ulFromID,ulToID,tCurrentTime,strMsg.c_str(),strfontface.c_str(),fo

jsp 数据库 弹框-jsp中数据库的数据传到页面上

问题描述 jsp中数据库的数据传到页面上 我写一个请假系统,首先是根据学号id登录,进入首页.首页中有个"修改信息"的按钮,点击此按钮之后,会弹出一个div框,显示学生的基本信息,并且点击"修改"按钮可以修改. 现在,我不知道如何把数据库里面每个学生对应的信息,显示到弹出框上?请大家指点迷津,不胜感激!急求!!! 解决方案 这个嘛,前一个月我也遇到类似问题, 主要是就是才学.说说我的理解 1.首先,弹出框没做过,页面跳转你可以直接跳转到对应的页面上,比如_$(&qu

jquery如何根据文本框中输入的数,实现数组循环

问题描述 jquery如何根据文本框中输入的数,实现数组循环 实现了点击添加选项增加行,但是每次增加一行都要用一个else if,所以在后面我增加了一个 最多<input type="text" name="maxnum" style="width: 4%"/>项 用来输入本次添加选项需要设置多少项,超出就做出提示,做了很久还是做不出来,菜鸟求助各位 <script> function del(t){ $(t).paren

苹果在AR领域不断挖墙角时,iOS开发框架中多了数个AR相关调用文件

最近iOS开发者Steven Troughton-Smith发推文称,苹果在其关键开发框架中添加了数"头戴式显示器的渲染技术"的引用文件,这些文件可以被开发者调用来开发一些VR/AR相关功能. Steven 认为苹果是在模仿HoloLens去做应用平台,想要将VR应用开发的事情交给别人去做,这点已经在iOS9中的SceneKit 3D游戏开发框架中得以体现.在iOS 10中SceneKit进展则似乎在为AR开发所设计. 与此同时,苹果还在持续地招聘被蒂姆库克称为"令人难以置信