数据库内容如下:
制程 合格 报废
1 1569216 0 32066
2 1534800 240 32066
3 1533045 1755 31826
4 1526144 0 30071
5 1519253 0 30071
6 1519246 7 30071
7 1519246 0 30064
8 1518744 502 30064
9 1488621 2530 29562
10 1515777 463 27032
11 1529549 2 26569
12 1511155 768 26567
13 1531809 107 25799
14 1525655 6154 25692
15 1491136 485 19538
16 1488046 236 19053
17 1493400 654 18817
18 1483548 2968 18163
19 1498008 278 15195
20 1518809 0 14917
21 1541647 11697 14917
22 1541405 242 3220
23 1532865 1749 2978
24 1525948 174 1229
25 1530697 1054 1055
26 1530696 1 1
27 1503440 0 0最后一列数据怎么才能得到(最后一列数据是对第三列数据累加得到)?数据类只有前三列数据

解决方案 »

  1.   

    呵呵,看出来了。先假设最后一列名为C,后面说比较方便C列=上一制程C列-上一制程"报废"
    制程1的列C=SUM(报废)SUM(报废)=32066以制程3为例,C列数据=32066-240=31826其他同~~~~~~~~
    晕,我真是勤快,拿计算器把“报废”这一列从第一加到最后
      

  2.   

    DECLARE @total int
    SELECT @total=0
    UPDATE table
      set @total=total=@total+报废
    FROM table
      

  3.   

    楼上的最后一列数据怎么和发贴时不一样?如果是第一次的数据,假设原表名为QTY,最后一列为CSelect 
    *,
    C=(Select SUM(报废)-SUM(C) From QTY  Where 制程=T.制程 And C<T.C) 
    From QTY  T
      

  4.   

    select 
        制程 , 合格 , 报废,
     sum(sum(报废))      over(order by 制程desc) CC
    From QTY 
    group by 制程 , 合格 , 报废
      

  5.   

    我想的办法是通过 过程实现
    var
       i:integer;
      intTmp:integer;
    begin
      QTY.open;
      QTY.last;
      QTY.fields[6].value=bb.fields[5].value;
      for i:=QTY.recordcount downto do
      begin
        intTmp:=bb.fields[6].value;
        QTY.append;
        QTY.prior;
        QTY.fields[6].value:=intTmp+bb.fields[5].value;
      end;
      QTY.post;
      QTY.close;
    end;
    不知道是哪里有问题