注册 登录
编程论坛 SQL Server论坛

分享一个EXCL左右对比查询结果表

mywisdom88 发布于 2017-01-11 16:35, 1519 次点击
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.序号
1 回复
#2
mywisdom882017-01-11 16:37
测试数据
只有本站会员才能查看附件,请 登录

查询数据
s
只有本站会员才能查看附件,请 登录
1