日期:2014-05-18 浏览次数:20411 次
create table 员工表(工号 int,姓名 varchar(10)) insert into 员工表 select 1,'小明' insert into 员工表 select 2,'小红' insert into 员工表 select 3,'小白' create table A区记录表(编号 int,日期 datetime,销售员 varchar(10)) insert into A区记录表 select 1,'2011-1-1','小明' insert into A区记录表 select 2,'2011-1-2','小明' insert into A区记录表 select 3,'2011-1-2','小红' insert into A区记录表 select 4,'2011-1-3','小明' create table B区记录表(编号 int,日期 datetime,销售员 varchar(10)) insert into B区记录表 select 1,'2011-1-1','小明' insert into B区记录表 select 2,'2011-1-1','小白' insert into B区记录表 select 3,'2011-1-2','小明' insert into B区记录表 select 4,'2011-1-2','小白' insert into B区记录表 select 5,'2011-1-3','小红' go CREATE PROCEDURE [dbo].[Find_FT_YC] @daeStart smalldatetime , @daeEnd smalldatetime as begin select c.工号,c.姓名,c.日期, (case when d.销售员 is not null then 1 else 0 end)A区记录, (case when e.销售员 is not null then 1 else 0 end)B区记录 from ( select a.工号,a.姓名,b.日期 from 员工表 a,( select dateadd(d,number,@daeStart)日期 from master..spt_values where type='p' and dateadd(d,number,@daeStart)<=@daeEnd )b)c left join A区记录表 d on c.日期=d.日期 and c.姓名=d.销售员 left join B区记录表 e on c.日期=e.日期 and c.姓名=e.销售员 order by 3,1 end go exec [Find_FT_YC] '2011-1-1','2011-1-10' /* 工号 姓名 日期 A区记录 B区记录 ----------- ---------- ----------------------- ----------- ----------- 1 小明 2011-01-01 00:00:00 1 1 2 小红 2011-01-01 00:00:00 0 0 3 小白 2011-01-01 00:00:00 0 1 1 小明 2011-