2015-04-21 66 views
0

當我嘗試在我的查詢中使用聚合函數SUM()時,我得到IllegalArgumentException,否則在沒有它的情況下工作正常。爲什麼使用SUM(mycolumn)突然使mycolumn不存在

沒有使用SUM()我的colPayDue被正確引用,我得到了正確的結果,但是當我嘗試將SUM()集成到查詢中時,它突然找不到。我顯然做錯了,但是什麼?

誰能告訴我什麼,我做錯了什麼?

Cursor cur = db.rawQuery("SELECT " + " _id, " + colCompClass + "," + colName + ", SUM(" + colPayDue + ")," + colDateDue + " FROM " + viewComps + " WHERE " + colDateDue + "=" + "(SELECT MIN (" + colDateDue + ") FROM " + viewComps + " WHERE " + colDateDue + ">=?)" + " GROUP BY " + colDateDue + "," + colCompClass, params); 
+1

變化'SUM( 「+ colPayDue + 」)''到SUM(「 + colPayDue +」)作爲colPayDue' –

回答

1

查詢的輸出列的名稱,通常是你寫的SELECT子句中的表達。

因此,對於這個查詢:

SELECT _id, 
     Name, 
     SUM(PayDue) 
FROM ... 

三個輸出列被命名爲_idNameSUM(PayDue)

如果你想給另一名錶達式,使用AS:

SELECT _id, 
     Name, 
     SUM(PayDue) AS PayDue 
FROM ... 
+0

謝謝儘管@Giru Bhai幾乎說了同樣的話,因爲他沒有把它作爲答案,我只是留下了他的評論upvote,並同時接受這一點。 – Cytus

相關問題