sql横表变竖表动态语句怎么写
-- 实现结果的动态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、感觉这个语句肯定不会执行成功,最好你把表结构给出,并且给出示例结果来。
热门标签: