首页 > 电脑

sql横表变竖表动态语句怎么写

更新时间2018-03-06 19:38:35

-- 实现结果的动态SQL语句写法

declare @sql varchar(8000)

set @sql = 'select 商品编码'

select @sql = @sql + ',isnull (sum(case 日期 when '''+日期+''' then 销售额 end),0) as ['+日期+']'

from (select distinct [日期] from [dbo].[销售表]) as a

select @sql = @sql+' from [dbo].[销售表] group by 商品编码 order by 商品编码'

exec(@sql)


报错

消息 241,级别 16,状态 1,第 6 行

从字符串转换日期和/或时间时,转换失败。

疑问

是不是varchar(8000)有问题,还是 日期  数据类型 不能选择 datetime 。正确的要怎么设置


1、首先 日期没有出现在Group里
2、其次,组成动态的【,isnull(sum(...))】没有去掉最前面的那个逗号
3、感觉这个语句肯定不会执行成功,最好你把表结构给出,并且给出示例结果来。

上一篇:vb精简版可以满足计算机二级考试吗

下一篇:ttensorflow深度学习怎么基于训练好的模型继续训练