create table UserInfo(userID varchar(10),UserName varchar(10),deparid nvarchar(10))
insert into UserInfo values('001' , N'赵雷' , N'A001')
insert into UserInfo values('002' , N'钱电' , N'A001')
insert into UserInfo values('003' , N'孙风' , N'A001')
insert into UserInfo values('004' , N'李云' , N'A002')
insert into UserInfo values('005' , N'周梅' , N'A002')
insert into UserInfo values('006' , N'吴兰' , N'A002')
insert into UserInfo values('007' , N'郑竹' , N'A002')
insert into UserInfo values('008' , N'王菊' , N'A003')create table Part(Dguid varchar(10),Dname varchar(10))
insert into Part values('A001' , N'部门1')
insert into Part values('A001' , N'部门1')
insert into Part values('A001' , N'部门1')
insert into Part values('A001' , N'部门1')
insert into Part values('A002' , N'部门2')
insert into Part values('A002' , N'部门2')
insert into Part values('A002' , N'部门2')
insert into Part values('A003' , N'部门3')create table Seq1(sequence varchar(10),userID varchar(10))
insert into Seq1 values('1' , '001')
insert into Seq1 values('1' , '002')
insert into Seq1 values('1' , '003')
insert into Seq1 values('1' , '004')
insert into Seq1 values('1' , '005')
insert into Seq1 values('1' , '006')
insert into Seq1 values('2' , '002')
insert into Seq1 values('2' , '002')create table Seq2(Prosequence varchar(10),userID varchar(10))
insert into Seq1 values('1' , '001')
insert into Seq1 values('1' , '002')
insert into Seq1 values('1' , '003')
insert into Seq1 values('1' , '004')
insert into Seq1 values('1' , '005')
insert into Seq1 values('1' , '006')
insert into Seq1 values('2' , '002')
insert into Seq1 values('2' , '002')先放测试数据 

解决方案 »

  1.   

    第四个表改下create table Seq2(Prosequence varchar(10),userID varchar(10))
    insert into Seq1 values('1' , '001')
    insert into Seq1 values('1' , '002')
    insert into Seq1 values('1' , '003')
    insert into Seq1 values('1' , '004')
    insert into Seq1 values('2' , '005')
    insert into Seq1 values('2' , '006')
    insert into Seq1 values('2' , '002')
    insert into Seq1 values('2' , '002')
      

  2.   

    第一步:先求出seq1,seq2不重复数据
    /-------- 结果
    1    001
    1    002
    1    003
    1    004
    1    005
    1    006
    第二步:求userID 在UserInfo 中的数据
    第三步:得出所在部门表Part  
    最终结果应该是-------------
      sequence  Dname
         1      部门1
         1      部分2
      

  3.   

      第二张表 写错了 
    insert into Part values('A001' , N'部门1')
    insert into Part values('A002' , N'部门2')
    插入2条数据测试就行了
      

  4.   


    create table UserInfo(userID varchar(10),UserName varchar(10),deparid nvarchar(10))
    insert into UserInfo values('001' , N'赵雷' , N'A001')
    insert into UserInfo values('002' , N'钱电' , N'A001')
    insert into UserInfo values('003' , N'孙风' , N'A001')
    insert into UserInfo values('004' , N'李云' , N'A002')
    insert into UserInfo values('005' , N'周梅' , N'A002')
    insert into UserInfo values('006' , N'吴兰' , N'A002')
    insert into UserInfo values('007' , N'郑竹' , N'A002')
    insert into UserInfo values('008' , N'王菊' , N'A003')create table Part(Dguid varchar(10),Dname varchar(10))
    insert into Part values('A001' , N'部门1')
    insert into Part values('A001' , N'部门1')
    insert into Part values('A001' , N'部门1')
    insert into Part values('A001' , N'部门1')
    insert into Part values('A002' , N'部门2')
    insert into Part values('A002' , N'部门2')
    insert into Part values('A002' , N'部门2')
    insert into Part values('A003' , N'部门3')create table Seq1(sequence varchar(10),userID varchar(10))
    insert into Seq1 values('1' , '001')
    insert into Seq1 values('1' , '002')
    insert into Seq1 values('1' , '003')
    insert into Seq1 values('1' , '004')
    insert into Seq1 values('1' , '005')
    insert into Seq1 values('1' , '006')
    insert into Seq1 values('2' , '002')
    insert into Seq1 values('2' , '002')
    create table Seq2(Prosequence varchar(10),userID varchar(10))
    insert into Seq1 values('1' , '001')
    insert into Seq1 values('1' , '002')
    insert into Seq1 values('1' , '003')
    insert into Seq1 values('1' , '004')
    insert into Seq1 values('2' , '005')
    insert into Seq1 values('2' , '006')
    insert into Seq1 values('2' , '002')
    insert into Seq1 values('2' , '002')select * from(
    select b.userID,b.deparid,b.UserName,
    a.sequence from(
    select * from Seq1
    union select * from Seq2) a
    full join UserInfo b on a.userID=b.userID)c
    full join Part d on c.deparid=d.Dguid/*
    userID deparid UserName sequence Dguid Dname
    001 A001 赵雷 1 A001 部门1
    001 A001 赵雷 1 A001 部门1
    001 A001 赵雷 1 A001 部门1
    001 A001 赵雷 1 A001 部门1
    002 A001 钱电 1 A001 部门1
    002 A001 钱电 1 A001 部门1
    002 A001 钱电 1 A001 部门1
    002 A001 钱电 1 A001 部门1
    002 A001 钱电 2 A001 部门1
    002 A001 钱电 2 A001 部门1
    002 A001 钱电 2 A001 部门1
    002 A001 钱电 2 A001 部门1
    003 A001 孙风 1 A001 部门1
    003 A001 孙风 1 A001 部门1
    003 A001 孙风 1 A001 部门1
    003 A001 孙风 1 A001 部门1
    004 A002 李云 1 A002 部门2
    004 A002 李云 1 A002 部门2
    004 A002 李云 1 A002 部门2
    005 A002 周梅 1 A002 部门2
    005 A002 周梅 1 A002 部门2
    005 A002 周梅 1 A002 部门2
    005 A002 周梅 2 A002 部门2
    005 A002 周梅 2 A002 部门2
    005 A002 周梅 2 A002 部门2
    006 A002 吴兰 1 A002 部门2
    006 A002 吴兰 1 A002 部门2
    006 A002 吴兰 1 A002 部门2
    006 A002 吴兰 2 A002 部门2
    006 A002 吴兰 2 A002 部门2
    006 A002 吴兰 2 A002 部门2
    007 A002 郑竹 NULL A002 部门2
    007 A002 郑竹 NULL A002 部门2
    007 A002 郑竹 NULL A002 部门2
    008 A003 王菊 NULL A003 部门3
    */不明白你的具体意思
      

  5.   

    第一步 select * from Seq1 a  where not exists(select * from Seq2 where Prosequence=a.sequence and userID=a.userID )
    union all 
    select * from Seq2 b where not exists(select * from Seq1 where b.Prosequence=sequence and b.userID=userID )
      

  6.   

    select  * from UserInfo a left join Part b on a.deparid=b.Dguid
    left join 
    select  * from 
    (select * from Seq1 a  where not exists(select * from Seq2 where Prosequence=a.sequence and userID=a.userID )
    union all 
    select * from Seq2 b where not exists(select * from Seq1 where b.Prosequence=sequence and b.userID=userID ))m
    left join  UserInfo n on m.userID=n.userID 
    left join Part t on n.deparid=t.Dguid 显示的字段lz自己整理下
      

  7.   


    create table UserInfo(userID varchar(10),UserName varchar(10),deparid nvarchar(10))
    insert into UserInfo values('001' , N'赵雷' , N'A001')
    insert into UserInfo values('002' , N'钱电' , N'A001')
    insert into UserInfo values('003' , N'孙风' , N'A001')
    insert into UserInfo values('004' , N'李云' , N'A002')
    insert into UserInfo values('005' , N'周梅' , N'A002')
    insert into UserInfo values('006' , N'吴兰' , N'A002')
    insert into UserInfo values('007' , N'郑竹' , N'A002')
    insert into UserInfo values('008' , N'王菊' , N'A003')create table Part(Dguid varchar(10),Dname varchar(10))
    insert into Part values('A001' , N'部门1')
    insert into Part values('A002' , N'部门2')
    create table Seq1(sequence varchar(10),userID varchar(10))
    insert into Seq1 values('1' , '001')
    insert into Seq1 values('1' , '002')
    insert into Seq1 values('1' , '003')
    insert into Seq1 values('1' , '004')
    insert into Seq1 values('1' , '005')
    insert into Seq1 values('1' , '006')
    insert into Seq1 values('2' , '002')
    insert into Seq1 values('2' , '002')
    create table Seq2(Prosequence varchar(10),userID varchar(10))
    insert into Seq1 values('1' , '001')
    insert into Seq1 values('1' , '002')
    insert into Seq1 values('1' , '003')
    insert into Seq1 values('1' , '004')
    insert into Seq1 values('2' , '005')
    insert into Seq1 values('2' , '006')
    insert into Seq1 values('2' , '002')
    insert into Seq1 values('2' , '002')
    select sequence,Dname,COUNT(*) as [counts] from(
    select * from(
    select b.userID,b.deparid,b.UserName,
    isnull(a.sequence,0) as sequence from(
    select * from Seq1 union select * from Seq2) a
    full join UserInfo b on a.userID=b.userID)c
    full join Part d on c.deparid=d.Dguid)e
    group by sequence,Dname
    /*
    sequence Dname counts
    0 NULL 1
    1 部门1 3
    2 部门1 1
    0 部门2 1
    1 部门2 3
    2 部门2 2
    */--我姑且按照你统计每个sequence下的每个部门的人数来计算了
      

  8.   

    你这段数据是抄我的.
    insert into UserInfo values('001' , N'赵雷' , N'A001')
    insert into UserInfo values('002' , N'钱电' , N'A001')
    insert into UserInfo values('003' , N'孙风' , N'A001')
    insert into UserInfo values('004' , N'李云' , N'A002')
    insert into UserInfo values('005' , N'周梅' , N'A002')
    insert into UserInfo values('006' , N'吴兰' , N'A002')
    insert into UserInfo values('007' , N'郑竹' , N'A002')
    insert into UserInfo values('008' , N'王菊' , N'A003')但不知道你要干什么?
      

  9.   

    这段数据 deparid 是和第二张表的Dguid 想关连的
    一个部门针对多个用户
      

  10.   


    通过获取Deparid 数据 还匹配 表2 所对应的部门
      

  11.   

    create table UserInfo(userID varchar(10),UserName varchar(10),deparid nvarchar(10))
    insert into UserInfo values('001' , N'赵雷' , N'A001')
    insert into UserInfo values('002' , N'钱电' , N'A001')
    insert into UserInfo values('003' , N'孙风' , N'A001')
    insert into UserInfo values('004' , N'李云' , N'A002')
    insert into UserInfo values('005' , N'周梅' , N'A002')
    insert into UserInfo values('006' , N'吴兰' , N'A002')
    insert into UserInfo values('007' , N'郑竹' , N'A002')
    insert into UserInfo values('008' , N'王菊' , N'A003')
    create table Part(Dguid varchar(10),Dname varchar(10))
    insert into Part values('A001' , N'部门1')
    insert into Part values('A002' , N'部门2')
    create table Seq1(sequence varchar(10),userID varchar(10))
    insert into Seq1 values('1' , '001')
    insert into Seq1 values('1' , '002')
    insert into Seq1 values('1' , '003')
    insert into Seq1 values('1' , '004')
    insert into Seq1 values('1' , '005')
    insert into Seq1 values('1' , '006')
    insert into Seq1 values('2' , '002')
    insert into Seq1 values('2' , '002')
    create table Seq2(Prosequence varchar(10),userID varchar(10))
    insert into Seq2 values('1' , '001')
    insert into Seq2 values('1' , '002')
    insert into Seq2 values('1' , '003')
    insert into Seq2 values('1' , '004')
    insert into Seq2 values('2' , '005')
    insert into Seq2 values('2' , '006')
    insert into Seq2 values('2' , '002')
    insert into Seq2 values('2' , '002')select m.*,
           [UserInfo_cnt] = isnull((select count(1) from UserInfo n where n.deparid = m.dguid),0),
           [Seq1_cnt_按照实际匹配数量] = isnull((select count(1) from UserInfo n , Seq1 t where n.deparid = m.dguid and n.userID = t.userID),0),
           [Seq2_cnt_按照实际匹配数量] = isnull((select count(1) from UserInfo n , Seq2 t where n.deparid = m.dguid and n.userID = t.userID),0),
           [Seq1_cnt_去重复后匹配数量] = isnull((select count(1) from UserInfo n , (select distinct * from seq1) t where n.deparid = m.dguid and n.userID = t.userID),0),
           [Seq2_cnt_去重复后匹配数量] = isnull((select count(1) from UserInfo n , (select distinct * from seq2) t where n.deparid = m.dguid and n.userID = t.userID),0)
    from Part m
     
    drop table UserInfo,Part,Seq1 ,Seq2/*
    Dguid      Dname      UserInfo_cnt Seq1_cnt_按照实际匹配数量 Seq2_cnt_按照实际匹配数量 Seq1_cnt_去重复后匹配数量 Seq2_cnt_去重复后匹配数量 
    ---------- ---------- ------------ ----------------- ----------------- ----------------- ----------------- 
    A001       部门1        3            5                 5                 4                 4
    A002       部门2        4            3                 3                 3                 3(所影响的行数为 2 行)
    */
      

  12.   

    http://topic.csdn.net/u/20120322/19/78ab049c-2778-4526-8b13-4656929662a4.html重新整理了下 帮忙看下 
      

  13.   


    http://topic.csdn.net/u/20120322/19/78ab049c-2778-4526-8b13-4656929662a4.html
    乌龟 帮忙看下  
      

  14.   

    create table UserInfo(userID varchar(10),UserName varchar(10),deparid nvarchar(10))
    insert into UserInfo values('001' , N'赵雷' , N'A001')
    insert into UserInfo values('002' , N'钱电' , N'A001')
    insert into UserInfo values('003' , N'孙风' , N'A001')
    insert into UserInfo values('004' , N'李云' , N'A002')
    insert into UserInfo values('005' , N'周梅' , N'A002')
    insert into UserInfo values('006' , N'吴兰' , N'A002')
    insert into UserInfo values('007' , N'郑竹' , N'A002')
    insert into UserInfo values('008' , N'王菊' , N'A003')create table Part(Dguid varchar(10),Dname varchar(10))
    insert into Part values('A001' , N'部门1')
    insert into Part values('A002' , N'部门2')
    insert into Part values('A003' , N'部门3')create table Seq1(sequence varchar(10),userID varchar(10))
    insert into Seq1 values('1' , '001')
    insert into Seq1 values('1' , '002')
    insert into Seq1 values('1' , '003')
    insert into Seq1 values('1' , '004')
    insert into Seq1 values('1' , '005')
    insert into Seq1 values('1' , '006')
    insert into Seq1 values('2' , '002')
    insert into Seq1 values('2' , '002')create table Seq2(sequence varchar(10),userID varchar(10))
    insert into Seq2 values('1' , '001')
    insert into Seq2 values('1' , '002')
    insert into Seq2 values('1' , '003')
    insert into Seq2 values('1' , '004')
    insert into Seq2 values('2' , '005')
    insert into Seq2 values('2' , '006')
    insert into Seq2 values('2' , '002')
    insert into Seq2 values('2' , '002')
    go
    --1.方法一
    select p.* from Part p where exists(select 1 from UserInfo u,
    (
    select sequence ,userID from seq1 where sequence = 1
    union 
    select sequence ,userID from seq2 where sequence = 1
    ) s
    where p.Dguid = u.deparid and u.userID = s.userID)
    /*
    Dguid      Dname      
    ---------- ---------- 
    A001       部门1
    A002       部门2(所影响的行数为 2 行)
    */--2.方法二
    select distinct p.* from Part p , UserInfo u,
    (
    select sequence ,userID from seq1 where sequence = 1
    union 
    select sequence ,userID from seq2 where sequence = 1
    ) s
    where p.Dguid = u.deparid and u.userID = s.userID
    /*
    Dguid      Dname      
    ---------- ---------- 
    A001       部门1
    A002       部门2(所影响的行数为 2 行)
    */drop table UserInfo,Part,Seq1,Seq2