#2
mywisdom882017-01-11 16:37
|
if object_id('tempdb..#员工表') is not null drop table #员工表
--测试数据
create table #员工表(部门 varchar(20),姓名 varchar(20),性别 varchar(4),到职日期 datetime,年龄 int,职称 varchar(20))
declare @i int,@b varchar(20),@m varchar(20),@x varchar(4),@d datetime,@n int,@q varchar(20)
set @i=1
set @d=getdate()
set @q='文员'
set @x='男'
while @i<=21
begin
if @i<=10 set @b='板式加工1' else set @b='板式加工2'
set @m='张三'+right('000'+rtrim(@i),3)
set @d=@d+1
set @n=20+@i
if @q='文员' set @q='职员' else set @q='文员'
if @x='男' set @x='女' else set @x='男'
insert into #员工表 select @b,@m,@x,@d,@n,@q
set @i=@i+1
end
--测试数据结束
select * from #员工表
--生成报表开始
declare @左 int,@右 int
declare @左表 table(L部门 varchar(20),L姓名 varchar(20),L性别 varchar(4),L到职日期 datetime,L年龄 int,L职称 varchar(20),序号 int identity(1,1))
declare @右表 table(R部门 varchar(20),R姓名 varchar(20),R性别 varchar(4),R到职日期 datetime,R年龄 int,R职称 varchar(20),序号 int identity(1,1))
select @左=count(1) from #员工表 where 性别='男'
select @右=count(1) from #员工表 where 性别='女'
insert into @左表 select * from #员工表 where 性别='男'
insert into @右表 select * from #员工表 where 性别='女'
if @左>@右
select L部门,L姓名,L性别,L到职日期,L年龄,L职称,R部门,R姓名,R性别,R到职日期,R年龄,R职称 from @左表 l left join @右表 r on l.序号=r.序号
else
select L部门,L姓名,L性别,L到职日期,L年龄,L职称,R部门,R姓名,R性别,R到职日期,R年龄,R职称 from @右表 r left join @左表 l on l.序号=r.序号