行列转换报语法错误

z418841875 z418841875 墨衍会员 · AI 创作全网分发 墨衍智能分发 通过墨衍一键同步至各平台 可同步平台 CSDN微信公众号微博知乎掘金百家号博客园抖音小红书 你的文章也可以这样分发 墨衍会员 ¥399起/年,写一次发全网 我也要 + 加入社区

ALTER procedure [dbo].[acmor_cost] @YYMM varchar(6)
as
if not exists(select * from sys.objects where name='TB_cost')
begin
create table TB_cost
(
成本归属 varchar(50),类型 varchar(10),人数 int,加班费 float,应付小计 float,附加成本合计 float
)
end
truncate table TB_cost

insert into TB_cost select(case when c.Myfield1='01' then 'B24' when c.Myfield1='05' then 'X241'
when c.Myfield1='06' then '其他' when c.Myfield1='15' then '办公人员'
when c.Myfield1='17' then '铣床' when c.Myfield1='18' then 'TMA'
when c.Myfield1='19' then '其他/保洁员' when c.Myfield1='20' then 'N12'
when c.Myfield1='21' then 'X340' when c.Myfield1='22' then 'B9'
when c.Myfield1='23' then 'N56/N61' when c.Myfield1='24' then 'B170'
when c.Myfield1='09' then 'X241-Assy' when c.Myfield1='11' then 'X241-Shaft'
when c.Myfield1='13' then 'X241-Ring' when c.Myfield1='14' then 'X241-Nut'
when c.Myfield1='12' then 'X241-Collar' when c.Myfield1='25' then 'B171' end),EmpTypeName,
count(*) as 人数,SUM(PayNo10) as 加班费,
SUM(PayNo20) as 应付,SUM(PayNo21+PayNo22+PayNo23+PayNo24+PayNo29) as 成本
from PayMonthData a left join AttMonthData b
left join PerEmployee c on b.EmpID=c.EmpID
on a.EmpID=b.EmpID and a.YYMM=b.YYMM
where a.YYMM=@YYMM and c.Myfield1!='' and c.Myfield1 is not null
and EmpTypeName!='' and EmpTypeName is not null
and UserTypeName!='' and UserTypeName is not null
group by c.Myfield1,EmpTypeName,UserTypeName

declare @sql varchar(8000)

set @sql=''

select @sql=@sql+','+ 成本归属 from TB_cost group by 成本归属
print(@sql)
set @sql=STUFF(@sql,1,1,'')
print(@sql)
set @sql='select * from TB_cost pivot(EmpTypeName,count(*),SUM(PayNo10),SUM(PayNo20),SUM(PayNo21+PayNo22+PayNo23+PayNo24+PayNo29) for 成本归属 in ('+@sql+')) t'

print(@sql)
exec(@sql)


---exec [dbo].[acmor_cost] '201506'


运行结果
,B170,B171,B24,B9,N12,N56/N61,TMA,X241,X340,办公人员,其他,其他/保洁员,铣床
B170,B171,B24,B9,N12,N56/N61,TMA,X241,X340,办公人员,其他,其他/保洁员,铣床
select * from TB_cost pivot(EmpTypeName,count(*),SUM(PayNo10),SUM(PayNo20),SUM(PayNo21+PayNo22+PayNo23+PayNo24+PayNo29) for 成本归属 in (B170,B171,B24,B9,N12,N56/N61,TMA,X241,X340,办公人员,其他,其他/保洁员,铣床)) t
消息 102,级别 15,状态 1,第 1 行
',' 附近有语法错误。

sos
...全文

相关推荐

评论 6
收藏 已收藏
分享
返回顶部
z418841875
疑难问题 22,298 成员 121,727 内容