ID   所属单位    被选   单位被选人数
1     1          0      0
2     1          0      0
3     1          0      0
4     1          0      0
5     2          0      0
6     2          0      0
7     3          0      0  
8....
每个人对应于一个ID,被选中为1,否则为0,
要求:同一个单位的人被选的人数不能超过两个现按这种的条件选取5个人,
结果应为
ID   所属单位    被选   单位被选人数
1     1          1      2
2     1          1      2
5     2          1      2
6     2          1      2
7     3          1      1  
SQL语句怎么写?

解决方案 »

  1.   

    update问题我已经解决,
    不知道先怎么select出来,即
    ID   所属单位    被选   单位被选人数
    1     1          0      0
    2     1          0      0
    5     2          0      0
    6     2          0      0
    7     3          0      0??????
      

  2.   

    先select出来,怎么做?
    用临时表呢?我还没有想出来的……
      

  3.   

    用临时表吧,一直帮你试就是不出来,取一个还好,两个……
    下面语句希望对你有一点启了,我没弄成功:
    select a.id, a.com, a.sel, b.sc as selc from tblt a,
    (select com, (case when count(id) >= 2 then 2 else count(id) end) as sc from tblt group by com) b
    where a.com=b.com
      

  4.   

    在Access中,好像不支持case when语句???
      

  5.   

    用ADODataSet的FieldsDef做一个临时表,用判断语句写内容进去,建议这样
      

  6.   

    我用select * into temp  创建了临时表,到最后再drop table temp
    可是用临时表这样的SQL我还是没有想出来怎么写
    ~~