2013-05-29 4 views
0

Column 1: DateColumn 2: Typeполучить значение столбца для двух последовательных строк, имеющих один и тот же другого столбец значений

Так, если строки отсортированы в порядке убывания Date, а затем найти даты, в течение которого пользователь имеет один и тот же последовательный тип "Clever" (см пример ниже).

Для exampe:

Если моя таблица содержит следующие данных-

Sr Date       Type 

    1 2013-05-24T16:21:06.728Z  Alaska 

    2 2013-05-27T20:44:32.412Z  Clever 

    3 2013-05-27T20:45:33.301Z  Clever 

    4 2013-05-27T21:45:46.127Z  Clever 

    5 2013-05-27T21:46:27.825Z  Self 

6 2013-05-28T15: 18: 48.430Z Clever

Так что я хочу Дата 2013-05-27T21:45:46.127Z

Я пробовал следующее:

ArrayList<String> startTimeList = new ArrayList<String>(); 
cur = dbAdapter.rawQuery("select Date, Type from User ORDER BY Date DESC", null); 

cur.moveToFirst(); 

if(cur.getCount() > 0) 
{ 
    int i = 0; 

    while(cur.isAfterLast() == false) 
    { 
     if(cur.getString(1).equals("Clever")) 
     { 
      startTimeList.add(cur.getString(0)); 
      cur.moveToNext(); 
     } 
     else 
     { 
      cur.moveToNext(); 
     } 
     if(startTimeList.size() == 2) 
     { 
      return; 
     } 
    } 

Но это не дает мне Date для следующих строк, которые имеют тип "Clever".

ответ

2
String dateOfLastCleverPrecededByADuplicate; 

cur = dbAdapter.rawQuery("select Date, Type from User ORDER BY Date DESC", null); 

cur.moveToFirst(); 
String prevType; 
String prevDate; 
while (!cur.isAfterLast()) 
{ 
    if (cur.getString(1) != null && 
     cur.getString(1).equals(prevType) && 
     cur.getString(1).equals("Clever")) 
    { 
     // found consecutives record with identical type 'Clever' 
     dateOfLastCleverPrecededByADuplicate = prevDate; 
     break; 
    } 

    prevDate = cur.getString(0); 
    prevType = cur.getString(1); 
    cur.moveToNext(); 
} 

После этого dateOfLastCleverPrecededByADuplicate является "2013-05-27T21: 45: 46.127Z" в вашем примере.

Смежные вопросы

 Смежные вопросы