22,209
社区成员
发帖
与我相关
我的任务
分享
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'
declare @sql varchar(8000)
set @sql=''
select @sql=ISNULL(@sql+',','')+ quotename(成本归属) from TB_cost group by 成本归属
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'