create table t(AA varchar(10),CC varchar(10),DD int)
insert t 
select '0002','USER0',12
union  all   
select '5260','USER2',10
union  all   
select '5260','USER2',10
union  all   
select '0002','USER1',12
union  all   
select '0002','USER1',12
union  all   
select '5260','USER3',10
union  all   
select '5260','USER4',10
union all    
select '5260','USER4',10    select a.aa,a.cc,a.dd,(select dd/count(dd) from t where dd = a.dd group by dd) ee  from t a

解决方案 »

  1.   

    create table T(AA varchar(10), CC varchar(10), DD decimal(10,1), EE decimal(10,1))
    insert T select '0002', 'USER0', 12.0,      0.0
    union all select '5260', 'USER2', 10.0,      0.0
    union all select '5260', 'USER2', 10.0,      0.0
    union all select '0002', 'USER1', 12.0,      0.0
    union all select '0002', 'USER1', 12.0,      0.0
    union all select '5260', 'USER3', 10.0,      0.0
    union all select '5260', 'USER4', 10.0,      0.0
    union all select '5260', 'USER4', 10.0,        0.0 select AA, CC, DD,
    EE=cast(DD as int)/(select count(*) from T where AA=tmp.AA)
    from T as tmp--result
    AA         CC         DD           EE          
    ---------- ---------- ------------ ----------- 
    0002       USER0      12.0         4
    5260       USER2      10.0         2
    5260       USER2      10.0         2
    0002       USER1      12.0         4
    0002       USER1      12.0         4
    5260       USER3      10.0         2
    5260       USER4      10.0         2
    5260       USER4      10.0         2(8 row(s) affected)
      

  2.   

    create table T(AA varchar(10), CC varchar(10), DD decimal(10,1), EE decimal(10,1))
    insert T select '0002', 'USER0', 12.0, 0.0
    union all select '5260', 'USER2', 10.0, 0.0
    union all select '5260', 'USER2', 10.0, 0.0
    union all select '0002', 'USER1', 12.0, 0.0
    union all select '0002', 'USER1', 12.0, 0.0
    union all select '5260', 'USER3', 10.0, 0.0
    union all select '5260', 'USER4', 10.0, 0.0
    union all select '5260', 'USER4', 10.0, 0.0select distinct AA, CC, DD,
    EE=cast(DD as int)/(select count(*) from T where AA=tmp.AA)
    from T
      

  3.   

    我塞,太复杂一点了,我这个是在VB的程序中实现的,这么多代码,能不能简单一点,就一个SQL语句搞定呀?
      

  4.   

    楼主,上面就是一句SQL啊,你想要什么?
      

  5.   

    他们这样写是让你更明白点,
    具体的sql语句就是这样的,和他们的一样!
    select AA, CC, DD,
    EE=cast(DD as int)/(select count(*) from T where AA=tmp.AA )
    from T as tmp