我正在 laravel 5.8 中撰寫一個函式,我想在其中獲取位于我選擇的范圍內的用戶數量的總和,我正在使用兩個輸入欄位來查看它們獲得價格范圍“T0 和 From”,例如,如果用戶輸入 100 和 1000,它應該顯示數量 > 100 和數量 < 1000 的用戶串列。問題是同一用戶有多個記錄,如下表所示。我想總結用戶的數量并顯示用戶的數量是否在范圍內
表名=存款
<table>
<thead>
<tr>
<th>id</th>
<th>user_id</th>
<th>name</th>
<th>amount</th>
</tr>
</thead>
<tbody>
<tr>
<td>1</td>
<td>12</td>
<td>ali</td>
<td>100</td>
</tr>
<tr>
<td>2</td>
<td>12</td>
<td>ali</td>
<td>800</td>
</tr>
<tr>
<td>3</td>
<td>12</td>
<td>ali</td>
<td>50</td>
</tr>
<tr>
<td>4</td>
<td>15</td>
<td>khan</td>
<td>1100</td>
</tr>
<tr>
<td>6</td>
<td>9</td>
<td>james</td>
<td>850</td>
</tr>
<tr>
<td>7</td>
<td>9</td>
<td>james</td>
<td>90</td>
</tr>
</tbody>
</table>
uj5u.com熱心網友回復:
您的查詢的這種行為是正確的,要獲得您需要的內容,必須對查詢進行處理。假設您deposits表中的此欄位:與表id, user_id, name, amount中顯示的資料一致。
您需要對amount分組求和user_id
示例查詢:
$deposit = Deposits::select(
'id',
'user_id',
'name',
'sum(amount)',
)->whereBetween('amount', [100, 1000])
->groupBy('user_id')->get();
uj5u.com熱心網友回復:
DB::table('deposits')
->selectRaw('user_id, SUM(amount) as total_amount')
->where('amount', '>', '100')
->where('amount', '<', '1000')
->groupBy('user_id')
->get();
結果是:
[
{
"user_id":9,
"total_amount":850
},
{
"user_id":12,
"total_amount":800
}
]
uj5u.com熱心網友回復:
app('db')
->table('users')
->select('name')
->selectRaw("SUM(amount) as total_amounts")
->havingBetween('total_amounts', [ 100, 1000 ])
->groupBy('user_id')
->get();
您可以將原始查詢用于每個用戶的總和,并使用介于之間的總和。
轉載請註明出處,本文鏈接:https://www.uj5u.com/qiye/461963.html
上一篇:我怎樣才能使這段代碼變得簡單。我在很多部分都使用了這個query()函式
下一篇:生成一個大的下拉串列
