删除值日期重叠
问题描述:
我有表中的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被删除。
答
这应该做的伎俩:
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
:
- 等于符号;
- 等方向;
- 较大(或相等)Start_val;
- 较小(或相等)End_val;
- 较小(或相等)AW。
会向您显示您要删除的行的列表。