有一张表如下:(其他字段略,商品内码和属性编码是主键)
商品内码 属性编码 引用标记
4001 1 0
4001 2 0
4001 3 1
4002 1 1
4003 1 0
4003 2 1
4004 1 0
4004 2 0
4004 3 0
4004 4 0
4004 5 1
正常情况下,同一个商品内码中只有属性编码最大的那条记录的引用标记为1,其他为0。由于操作失误,造成引用标记全成为了0。
请问怎样才能把每个商品内码中属性编码最大的那条记录检索出来?
商品内码 属性编码 引用标记
4001 1 0
4001 2 0
4001 3 1
4002 1 1
4003 1 0
4003 2 1
4004 1 0
4004 2 0
4004 3 0
4004 4 0
4004 5 1
正常情况下,同一个商品内码中只有属性编码最大的那条记录的引用标记为1,其他为0。由于操作失误,造成引用标记全成为了0。
请问怎样才能把每个商品内码中属性编码最大的那条记录检索出来?
a.*
from
表 a
where
not exists(select 1 from 表 where 商品内码=a.商品内码 and 属性编码>a.属性编码)
set
引用标记=1
from
表 a
where
not exists(select * from 表 where 商品内码=a.商品内码 and 属性编码>a.属性编码)