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