现在比如出表数据
id  员工号   行业ID   职位ID        添加日期
1     001      1         2          2011-01-01
2     001      1         2          2011-02-01
3     001      2         3          2011-03-01
4     001      2         3          2011-04-01
5     001      1         2          2011-05-01查询结果后
id  员工号   行业ID   职位ID        添加日期
1     001      1         2          2011-01-01
3     001      2         3          2011-03-01
5     001      1         2          2011-05-01
这种结果能实现吗 就是把相近两行行业 ,职位 ,员工号 相同的合并成一行 中间有间隔的不行比如 3月变了 5月又恢复就不行了 必数据相连才能合并 请问这种效果能实现吗 给下思路啊!!

解决方案 »

  1.   


    如果有超过2行以上行业 ,职位 ,员工号 相同的,该是怎么样的结果?
    如:
    id 员工号 行业ID 职位ID 添加日期
    1 001 1 2 2011-01-01
    2 001 1 2 2011-02-01
    3 001 1 2 2011-03-01
    4 001 2 3 2011-04-01
    5 001 1 2 2011-05-01
      

  2.   

    那就只显示日期最小的那行啊!
    id 员工号 行业ID 职位ID 添加日期
    1 001 1 2 2011-01-01
    4 001 2 3 2011-04-01
    5 001 1 2 2011-05-01
      

  3.   

    条件 :当月 员工号 行业ID 职位ID 相同并且相邻 
    替换 :最小时间ID 员工号 行业ID 职位ID 最小时间 这样?
      

  4.   

    select
     * 
    from
     tb t 
    where 
     添加日期=(select min(添加日期) from tb where 员工号=t.员工号 and 职位ID =t.职位ID  and datediff(mm,添加日期,t.添加日期)=1)
      

  5.   


    --> 测试数据: [tb]
    if object_id('[tb]') is not null drop table [tb]
    create table [tb] (id int,员工号 varchar(3),行业ID int,职位ID int,添加日期 datetime)
    insert into [tb]
    select 1,'001',1,2,'2011-01-01' union all
    select 2,'001',1,2,'2011-02-01' union all
    select 3,'001',2,3,'2011-03-01' union all
    select 4,'001',2,3,'2011-04-01' union all
    select 5,'001',1,2,'2011-05-01'--开始查询
    select * from tb a where not exists(
    select 1 from tb where 员工号=a.员工号 and 行业ID=a. 行业ID and 职位ID=a.职位ID 
    and datediff(month,添加日期,a.添加日期)=1 and id<a.id
    )
    order by id--结束查询
    drop table [tb]/*
    id          员工号  行业ID        职位ID        添加日期
    ----------- ---- ----------- ----------- -----------------------
    1           001  1           2           2011-01-01 00:00:00.000
    3           001  2           3           2011-03-01 00:00:00.000
    5           001  1           2           2011-05-01 00:00:00.000(3 行受影响)