2012-02-10 69 views
2

我有表中的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

这应该做的伎俩:

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。

会向您显示您要删除的行的列表。