表结构如下:
fph      jcmdm bz  sj   sycs sycsmax xm168022   15260  1  2006-08-01 09:43:31.000 0 1 吴继林
168022   15260  1  2006-08-01 09:48:57.000 1 1 吴继林
168022   15260  -1  2006-08-01 10:16:21.000 1 1 吴继林
0137215  11696  1  2006-08-02 10:00:18.000 0 1 陈秀荣
0137215  11696  1  2006-08-02 10:00:18.000 0 1 陈秀荣
0137215  14319  1  2006-08-02 10:00:18.000 0 1 陈秀荣
0137215  14333  1  2006-08-02 10:00:18.000 0 1 陈秀荣
0137215  14334  1  2006-08-02 10:00:18.000 0 1 陈秀荣
0137215  11696  -1  2006-08-02 10:05:41.000 0 1 陈秀荣
0137215  11696  -1  2006-08-02 10:05:41.000 0 1 陈秀荣
0137215  14319  -1  2006-08-02 10:05:41.000 0 1 陈秀荣
0137215  14333  -1  2006-08-02 10:05:41.000 0 1 陈秀荣
0137215  14334  -1  2006-08-02 10:05:41.000 0 1 陈秀荣
0137226  11696  1  2006-08-02 10:05:59.000 0 1 陈秀荣
0137226  14333  1  2006-08-02 10:05:59.000 0 1 陈秀荣
0137226  14334  1  2006-08-02 10:05:59.000 0 1 陈秀荣
0137229  11696  1  2006-08-02 10:06:36.000 0 1 陈秀荣
0137229  14319  1  2006-08-02 10:06:36.000 0 1 陈秀荣
.....问题是这样:
  根据 BZ 字段对表进行修改,如果同一个 XM 的结果里的BZ标志为-1的话,并且有相等的 JCXMDM,就把它们的 SYCS 设置为 SYCSMAX .
  但是需要注意的是:如果这个人的结果里有只有一个 BZ 为 -1 的话,只能去修改其中的一条 BZ 为 1 的记录,并把 BZ 为负的也修改: SYCS 设置为 SYCSMAX .
如:XM = 吴继林 的记录,只能对第二条与第三条记录进行修改.
 

解决方案 »

  1.   

    根据 BZ 字段对表进行修改..看到这句相到触发器.再看表,无标识列. 无法实现.
    除非用先将数据写入临时表并产生标识列,然后 按标识列做相应用操作(获得第二三条记录,UPDATE),之后,TRUNCATE 原表,再将临时表的数据写回去.或者ALTER TABLE 表 ADD ID IDENTIYT(1,1),操作完后再删除这个列
    语句我就不写了,跟查询差不多.写的太多了.
      

  2.   

    多谢fcuandy(www.iDotNet.org)兄.
    假如给这个表加上一个ID列的话,那该怎么写呢? 
    表结构如下:
    ID FPh      jcmdm bz  sj   sycs sycsmax xm1  168022   15260  1  2006-08-01 09:43:31.000 0 1 吴继林
    2  168022   15260  1  2006-08-01 09:48:57.000 1 1 吴继林
    3  168022   15260  -1  2006-08-01 10:16:21.000 1 1 吴继林
    4  0137215  11696  1  2006-08-02 10:00:18.000 0 1 陈秀荣
    5  0137215  11696  1  2006-08-02 10:00:18.000 0 1 陈秀荣
    6  0137215  14319  1  2006-08-02 10:00:18.000 0 1 陈秀荣
    7  0137215  14333  1  2006-08-02 10:00:18.000 0 1 陈秀荣
    8  0137215  14334  1  2006-08-02 10:00:18.000 0 1 陈秀荣
    9  0137215  11696  -1  2006-08-02 10:05:41.000 0 1 陈秀荣
    10 0137215  11696  -1  2006-08-02 10:05:41.000 0 1 陈秀荣
    11 0137215  14319  -1  2006-08-02 10:05:41.000 0 1 陈秀荣
    12 0137215  14333  -1  2006-08-02 10:05:41.000 0 1 陈秀荣
    13 0137215  14334  -1  2006-08-02 10:05:41.000 0 1 陈秀荣
    14 0137226  11696  1  2006-08-02 10:05:59.000 0 1 陈秀荣
    15 0137226  14333  1  2006-08-02 10:05:59.000 0 1 陈秀荣
    16 0137226  14334  1  2006-08-02 10:05:59.000 0 1 陈秀荣
    17 0137229  11696  1  2006-08-02 10:06:36.000 0 1 陈秀荣
    18 0137229  14319  1  2006-08-02 10:06:36.000 0 1 陈秀荣
    .....