2012-02-10 133 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。

會向您顯示您要刪除的行的列表。