我在MS Access数据库中有一个如下所示的表:
ID Symbol Direction Start_val End_val AW
1 ABC up 100 120 10
2 ABC up 110 130 11
3 XYZ down 350 380 15
4 XYZ down 340 390 15
我正在尝试删除重叠的start_val和end_val以及最高AW的重复符号和方向。例如,在上表中,数据匹配id 1具有与id 2的start_val和end_val重叠的start_val和end_val。由于id 1具有较小的AW,我想删除它。对于id 3和4,start_val和end_val重叠但AW是相同的,因此删除最小的id。
答案 0 :(得分:0)
这应该可以解决问题:
delete tablename
from tablename t1
inner join tablename t2 on t1.Symbol = t2.Symbol
and t1.Direction = t2.Direction
and t1.Start_val >= t2.Start_val
and t1.End_val <= t2.End_Val
and t1.AW <= t2.AW
使用具有相同限制的同一个表制作inner join
:
将为您提供要删除的行列表。