如何从sqlite中具有不同用户类型的单个列中获取金额之和

如何从sqlite中具有不同用户类型的单个列中获取金额之和,sqlite,ionic-framework,Sqlite,Ionic Framework,我使用以下查询从具有不同交易类型的列中获取金额之和。以下选择查询显示一种交易类型的值,但我有4种交易类型,如农民、工人、买方和费用。在这种情况下,我仅获取费用数据,即使其他类型有值 表: { name: 'daybook', columns: [ { name: 'id', type: 'integer', default: ''}, { name: 'date', type: 'text', default: ''}, { name: 'user_type',

我使用以下查询从具有不同交易类型的列中获取金额之和。以下选择查询显示一种交易类型的值,但我有4种交易类型,如农民、工人、买方和费用。在这种情况下,我仅获取费用数据,即使其他类型有值

表:

{
  name: 'daybook',
  columns: [
    { name: 'id', type: 'integer', default: ''},
    { name: 'date', type: 'text', default: ''},
    { name: 'user_type', type: 'text', default: ''},
    { name: 'amount_in', type: 'numeric', default: 'default 0'},
    { name: 'amount_out', type: 'numeric', default: 'default 0'},
    { name: 'other_amount', type: 'numeric', default: 'default 0'},
    { name: 'user_id', type: 'integer', default: ''},
    { name: 'description', type: 'text', default: ''},
    { name: 'transaction_type', type: 'text', default: ''},
    { name: 'client_id', type: 'integer', default: ''},
    { name: 'category', type: 'text', default: ''},
    { name: 'count', type: 'integer', default: ''},
    { name: 'cost', type: 'integer', default: ''},
    { name: 'bill_no', type: 'text', default: ''},
    { name: 'is_deleted', type: 'text', default: ''},
    { name: 'is_synced', type: 'text', default: ''}
  ]
}
查询:

 var query = 'SELECT SUM(CASE WHEN transaction_type = "FarmerAdvance" THEN amount_out ELSE 0 END) farmeradvance,SUM(CASE WHEN transaction_type = "WorkerAdvance" THEN amount_out ELSE 0 END) workeradvance,SUM(CASE WHEN transaction_type = "Expense" THEN amount_out ELSE 0 END) expense,SUM(CASE WHEN transaction_type = "BuyerPayment" THEN amount_in ELSE 0 END) income FROM daybook WHERE user_id = ?';

  return $cordovaSQLite.execute(Database.db, query, [window.localStorage['user_id']]).then(function (result) {
    if (result.rows.length > 0) {
      $log.log('dashboard items', result.rows.item(0));
      return result.rows.item(0);
    } else {
      return 0;
    }
  });

此查询返回四列。@CL但前两列和最后一列的值为0,即使它有值。您的代码只查看第一列。