求动态SQL增加合计数的语句

bigmingming 2015-08-07 11:19:35
A表中的s_sqlWhere条件是参数传入的。
SET @S_SQL = 'SELECT * FROM A'

IF @s_sqlWhere = ''
BEGIN
SET @S_SQL = @S_SQL + ' WHERE 1=2'
END
ELSE
BEGIN
SET @S_SQL = @S_SQL + ' WHERE 1=1 AND ' + @s_sqlWhere
END
我想把A表中字段PRICE合计数做为字段加在A表的返回数据集中。
...全文
119 3 打赏 收藏 转发到动态 举报
写回复
用AI写文章
3 条回复
切换为时间正序
请发表友善的回复…
发表回复
bigmingming 2015-08-07
  • 打赏
  • 举报
回复
A表字段比较多,这样group by 后要加好多字段名,有没有更好的办法
道玄希言 2015-08-07
  • 打赏
  • 举报
回复

declare @S_SQL nvarchar(max)
declare @S_SQL2 nvarchar(max)
declare @s_sqlWhere nvarchar(max)
set @s_sqlWhere = 'C1=''C'''

SET @S_SQL = 'SELECT  c1, c2, c3, c4, PRICE  FROM A'

SET @S_SQL2 = 'SELECT  '' '', '' '', '' '', '' '', sum(PRICE) as PRICE  FROM A'

IF @s_sqlWhere = ''
BEGIN
SET @S_SQL = @S_SQL + ' WHERE 1=2' 
SET @S_SQL2 = @S_SQL2 + ' WHERE 1=2' 
END
ELSE
BEGIN
SET @S_SQL = @S_SQL + ' WHERE 1=1 AND ' + @s_sqlWhere
SET @S_SQL2 = @S_SQL2 + ' WHERE 1=1 AND ' + @s_sqlWhere
END

SET @S_SQL = @S_SQL + ' union all ' + @S_SQL2 

exec(@S_SQL)
Tiger_Zhao 2015-08-07
  • 打赏
  • 举报
回复
加一行只能按#1的做法,加一列这样改
SET @S_SQL = 'SELECT *,SUM(PRICE) OVER() TOTAL FROM A'

34,593

社区成员

发帖
与我相关
我的任务
社区描述
MS-SQL Server相关内容讨论专区
社区管理员
  • 基础类社区
  • 二月十六
  • 卖水果的net
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧