2016-04-16 6 views
-1

ich eine SQLite mehrdeutige Spaltennamen auf einer Spalte mit dem Namen games._id in einer ziemlich komplizierten Auswahlabfrage wie folgt aus:Sqlite mehrdeutige Spaltennamen in Android, warum keine Lösung nicht funktioniert

public Cursor getStatsByResult(String result) 
{ 
    SQLiteDatabase db = this.getReadableDatabase(); 

    String buildSQL = "SELECT games._id AS game, games.lge, games.date, games.opp, games.ven, games.scr, " + 
      "SUM(CASE WHEN s_event = \"1on1\" THEN s_att END) ||\"/\"||"+ 
      "SUM(CASE WHEN s_event = \"1on1\" THEN s_point END) AS \"1 On 1 \","+ 
      "SUM(CASE WHEN s_event = \"MyDef\" THEN s_att END) ||\"/\"|| "+ 
      "SUM(CASE WHEN s_event = \"MyDef\" THEN s_point END) AS \"Switching Def\","+ 
      "SUM(CASE WHEN s_event = \"Defl\" THEN s_point END) AS Deflections "+ 
      "FROM records "+ 
      "INNER JOIN myplayers ON myplayers_id = s_myplayersid "+ 
      "INNER JOIN games ON games._id = myplayers_gameid "+ 
      "INNER JOIN games ON sessions.sessions_id = games.sessions_id AND games._id = myplayers.myplayers_game_id "+ 
      "WHERE games.result=\""+result+"\" AND games.date BETWEEN sessions.sessions_start AND sessions.sessions_end GROUP BY "+ 
      "games.date,games.rslt,games.opp"; 

    return db.rawQuery(buildSQL, null); 

} 

Warum ist es immer noch sagt diese Nachricht auch wenn ich games._id und nicht einfach _id?

+0

Der Java-Code ist nicht interessant. Zeigen Sie das tatsächliche SQL und das Datenbankschema an. –

Antwort

0

Ich denke, Sie haben versucht, Alias-Namen und das Problem ist mit dem Alias-Namen. Ich denke schon.

String buildSQL = "SELECT games._id , games.lge, games.date, games.opp, games.ven, games.scr, " + 
      "SUM(CASE WHEN s_event = \"1on1\" THEN s_att END) ||\"/\"||"+ 
      "SUM(CASE WHEN s_event = \"1on1\" THEN s_point END) AS \"1 On 1 \","+ 
      "SUM(CASE WHEN s_event = \"MyDef\" THEN s_att END) ||\"/\"|| "+ 
      "SUM(CASE WHEN s_event = \"MyDef\" THEN s_point END) AS \"Switching Def\","+ 
      "SUM(CASE WHEN s_event = \"Defl\" THEN s_point END) AS Deflections "+ 
      "FROM records game"+ 
      "INNER JOIN myplayers ON myplayers_id = s_myplayersid "+ 
      "INNER JOIN games ON games._id = myplayers_gameid "+ 
      "INNER JOIN games ON sessions.sessions_id = games.sessions_id AND games._id = myplayers.myplayers_game_id "+ 
      "WHERE games.result=\""+result+"\" AND games.date BETWEEN sessions.sessions_start AND sessions.sessions_end GROUP BY "+ 
      "games.date,games.rslt,games.opp"; 

Hoffnung diese Abfrage löst Ihr Problem.

Verwandte Themen