我现在有下列的表格:a    1    11    111
a    1    11    111
a    1    11    111
b    2    22    222
b    2    21    222
b    2    22    222
c    3    33    333
c    3    33    333以第一列为分组依据,就是说前三个是一组,中间三个是一组,后两个是一组。
现在发现第二组的中间那列21,和该组的其他列的内容不一致(22),所以要将该组(b)的所有第二列都变成红色,也就是说表格的第三、四、五行的第三列都是红色的。
大家帮忙哈!

解决方案 »

  1.   

    是所有字段都比较还是只比较一个?如果要比较除第一个之外的所有字段,也就是说,相同组的记录,其它字段都应相同的话:首先 select distinct * into temp表 from 原表
    得到结果为:
    a    1    11    111
    b    2    22    222
    b    2    21    222
    c    3    33    333也就是说,凡有不同值的,都会出现两次或更多(如果有更多不同值)。select 列1 into temp表2 from temp表得到
    a
    b
    b
    c用 select 列1 from temp表2 where count(列1)>1 group by 列1
    可取出有重复的组,即得到B。(这个语句没实验,如果有问题,按这个意思改改就是了)实际上,上面的语句只为分析方便,可以利用子查询合并一下,一条语句可能就出来了。经过上面步骤,就知道哪些组需要标红了。然后就是回过头来 select * from 原表,取出数据,然后:如果是在JSP里,生成数据视图时判断一下,是否是属于上面得到的结果当中的组,如果是,加上<FONT COLOR=RED>之类的HTML标记即可。如果是在JAVA可视化应用程序里,就通过设置相应的数据视图控件的属性来标红。