declare @sql varchar(8000)
set @sql = 'select drivername as ' + '姓名'
select @sql = @sql + ' , max(case convert(varchar, moneydate ,120),0,11) when ''' + convert(varchar, moneydate ,120),0,11) + ''' then totalmoney else 0 end) [' + convert(varchar, moneydate ,120),0,11) + ']'
from (select distinct convert(varchar, moneydate ,120),0,11) from moneylist) as a
set @sql = @sql + ' from moneylist group by drivername'
print @sql把结果发上来看看
指定變數值的 SELECT 陳述式不得和擷取資料的動作合併。
伺服器: 訊息 156,層級 15,狀態 1,行 4
關鍵字 'from' 附近的語法不正確。
指定變數值的 SELECT 陳述式不得和擷取資料的動作合併。
伺服器: 訊息 156,層級 15,狀態 1,行 4
關鍵字 'from' 附近的語法不正確。
set @sql = 'select name as ' + '姓名'
select @sql = @sql + ' , max(case moneydate when ''' +moneydate+ ''' then totalmoney else 0 end) [' +moneydate + ']'
from (select distinct moneydate from test2) as a
set @sql = @sql + ' from test2 group by name'
exec(@sql)
伺服器: 訊息 241,層級 16,狀態 1,行 3
從字元 (char) 字串轉換到 datetime 的語法錯誤。
表里面有两个字段
一个是NAME 另一个是DATETIME的MONEYDATE
set @sql = 'select drivername as ' + '姓名'
select @sql = @sql + ', max(case convert(varchar, moneydate,120) when ''' + convert(varchar, moneydate, 120) + ''' then totalmoney else 0 end) [' + convert(varchar, moneydate, 120) + ']'
from (select distinct convert(varchar, moneydate, 120) from moneylist) as a
set @sql = @sql + ' from moneylist group by drivername'
exec(@sql)