我有以下 MySQL 查询,我在其中完成了总利润,我有这样的字段:利率,信用(金钱)我想通过找到特定 ID 的总信用*(100-利率))/ 100 达到利润一个人的钱。
SELECT SUM((credit*(100-rate))/100) FROM roznamcha WHERE (accountNum=$id AND rate!=0.0)'
我已经使用 node.js 在 mongodb 中编写了以下查询,但是无论我的数据库中有一些数据,它都会返回 null
const profit=await roznamcha.aggregate([
{
$match:{
rate:{$ne:0}
}
},
{
$group:{
_id :'$accountNum',
}
},
{
$addFields:{
resultMultiply:{
$divide:[
{$multiply:['$credit','$rate-$100']},100
]
},
sumcredit:{
$sum:'$resultMultiply'
}
} }
])
res.status(201).json({
status:'success',
data:{
profit
}
})
我的输出:
{
"status": "success",
"data": {
"profit": [
{
"_id": "612deac8fbc8ef21a0fa4ea7",
"resultMultiply": null,
"sumcredit": 0
},
{
"_id": "612223327e2af83a4cec1272",
"resultMultiply": null,
"sumcredit": 0
}
]
}
谁能指导我解决这个问题?
在 $group 部分添加这些代码:
{
$group:{
_id :'$accountNum',
"credit":{$first:"$credit"},
"rate":{$first:"$rate"}
}
}
我认为这部分 Mongo 查询会帮助你,因为你没有获得信用和利率的值,因此它显示为空。 现在你添加这些值然后它会计算百分比。
注意:当存在 Mongo 查询时,您只需使用分而治之的方法来运行代码,您应该在此处执行查询的第一个块,如果显示所需数据,则移至第二部分,依此类推。
希望你能得到答案