Foxtable(狐表)用户栏目专家坐堂 → 如果将动态sql中的聚合的值赋值给变量


  共有4983人关注过本帖树形打印复制链接

主题:如果将动态sql中的聚合的值赋值给变量

帅哥哟,离线,有人找我吗?
happyft
  1楼 | 信息 | 搜索 | 邮箱 | 主页 | UC


加好友 发短信
等级:八尾狐 帖子:1934 积分:17667 威望:0 精华:0 注册:2014/7/29 19:09:00
如果将动态sql中的聚合的值赋值给变量  发帖心情 Post By:2022/2/22 14:02:00 [只看该作者]

DECLARE @cname NVARCHAR(8);
DECLARE @tbName NVARCHAR(16);
DECLARE @maxbh NVARCHAR(16);  --最大编号
DECLARE @sql NVARCHAR(MAX);
SET @tbName = '采购单'
SET @cname = '采购单号'
              
SET @sql = '  SELECT MAX(' + @cname + ')
                            FROM '+@tbName
EXEC sp_executesql @sql

通过上面的语句可以查询得到最大的采购单号,但如何将这个号码赋值给一个变量保存起来后面的sql语句用呢?
用下面的语句执行查询是null,不正确
SET @sql = '  SELECT '+@maxbh + ' = ''' + MAX(' + @cname + ') + '''  FROM '+@tbName
EXEC sp_executesql @sql
SELECT @maxbh
谢谢!

 回到顶部
帅哥哟,离线,有人找我吗?
有点蓝
  2楼 | 信息 | 搜索 | 邮箱 | 主页 | UC


加好友 发短信
等级:超级版主 帖子:111422 积分:567186 威望:0 精华:9 注册:2015/6/24 9:21:00
  发帖心情 Post By:2022/2/22 14:32:00 [只看该作者]

SET @sql = '  SELECT @maxbh = MAX(' + @cname + ') FROM '+@tbName

 回到顶部
帅哥哟,离线,有人找我吗?
HappyFt
  3楼 | 信息 | 搜索 | 邮箱 | 主页 | UC


加好友 发短信
等级:八尾狐 帖子:1934 积分:17667 威望:0 精华:0 注册:2014/7/29 19:09:00
  发帖心情 Post By:2022/2/22 14:37:00 [只看该作者]

那样写不行,会出错提示  必须声明标量变量 "@maxbh"。

 回到顶部
帅哥哟,离线,有人找我吗?
有点蓝
  4楼 | 信息 | 搜索 | 邮箱 | 主页 | UC


加好友 发短信
等级:超级版主 帖子:111422 积分:567186 威望:0 精华:9 注册:2015/6/24 9:21:00
  发帖心情 Post By:2022/2/22 15:08:00 [只看该作者]

作用域的问题,参考:https://www.cnblogs.com/walden1024/p/4079777.html


 回到顶部