动态sql拼接

南方的姑娘 南方的姑娘 墨衍会员 · AI 创作全网分发 墨衍智能分发 通过墨衍一键同步至各平台 可同步平台 CSDN微信公众号微博知乎掘金百家号博客园抖音小红书 你的文章也可以这样分发 墨衍会员 ¥399起/年,写一次发全网 我也要 + 加入社区
alter PROC 销售量在各省分布
@year int,@day int AS
SET NOCOUNT ON
DECLARE @STRSQL VARCHAR(MAX)
select t6.FName as 存货名称,t4.FName,t2.FConsignAmount,'' as 总计 into #TEMP from ICStockBill t1
inner join ICStockBillEntry t2 on t1.finterid = t2.FInterID
inner join t_Item t3 on t3.FItemID = t1.FSupplyID
inner join t_Item t4 on t4.FItemID = t3.FParentID
left join t_ICItem t6 on t2.fitemid = t6.fitemid --物料表
where t3.FNumber like '1.%'
SET @STRSQL = ''
SELECT @STRSQL = @STRSQL + 'SELECT 存货名称,总计'
SELECT @STRSQL = @STRSQL + 'sum(case when FNAME = '''+FName+''' then FConsignAmount else 0 end) as '''+FName+''', '
FROM (select distinct FName from #TEMP where FName <> '') as a order by FName
SELECT @STRSQL = left(@STRSQL,len(@STRSQL)-1) + 'FROM #TEMP GROUP BY 存货名称 '

SELECT @STRSQL = @STRSQL + 'UNION ALL
SELECT 存货名称,总计,'
SELECT @STRSQL = @STRSQL + 'sum(case when FNAME = 存货名称 then FConsignAmount else 0 end) as ''总计'', '
FROM (select distinct 存货名称 from #TEMP where 存货名称 <> '') as a order by 存货名称
SELECT @STRSQL = left(@STRSQL,len(@STRSQL)-1) + 'FROM #TEMP GROUP BY 总计 '

PRINT @STRSQL
EXEC (@STRSQL)
显示结果
存货名称 总计 A省.....B省...........................


错误提示:消息 195,级别 15,状态 10,第 1 行
'总计sum' 不是可以识别的 内置函数名称。
...全文

相关推荐

评论 12
收藏 已收藏
分享
返回顶部
南方的姑娘
MS-SQL Server 34,876 成员 254,635 内容