1

以下のクエリを実行しようとしていますが、集計関数 sum() を誤用しています

クエリ

select max(sum(entry.amount)),category.name from entry,category where entry.amount<0 and entry.cid=category.cid group by category.name  

LogCat 出力

android.database.sqlite.SQLiteException: misuse of aggregate function sum() (code 1): , while  compiling: select sum(entry.amount),category.name from entry,category where entry.amount<0 and  entry.cid=category.cid group by category.name 09-22 20:20:18.626: E/AndroidRuntime(4093):    at android.database.sqlite.SQLiteConnection.nativePrepareStatement(Native Method)

助言がありますか ?よろしく、兄弟

4

1 に答える 1

2

1 つのクエリで値を 2 回集計することはできませんが、これはサブクエリで解決できます。

試す:

select max(amountsum)
from (select sum(entry.amount) as amountsum
      from entry,category
      where entry.amount<0
        and entry.cid=category.cid
      group by category.name)

ノート :

  • 未テスト

  • クエリのロジックがわからない: 値を集計してエントリが 1 つだけ残るようにしているため、category.name のクエリは意味がありません

于 2014-09-22T15:59:47.417 に答える