我正在尝试创建一个mysql选择查询,该查询根据其他两个字段计算值.
这是我的查询,
SELECT request_id, (
unit_cost * quantity
) AS claim_value
FROM `xx_non_part_usage`
WHERE request_id = request_id
GROUP BY request_id
Run Code Online (Sandbox Code Playgroud)
上面的查询仅返回其中一行的total_value.
例如 - 这是一些示例数据,
ID REQUEST_ID QUANTITY UNIT_VALUE
1 10001 2.0 3.00
2 10001 1.0 19.00
3 10003 0.5 18.00
4 10001 10.0 12.00
5 10003 0.75 6.76
6 10002 9.0 3.20
7 10001 0.10 13.80
8 10001 1.0 90.99
9 10004 6.75 3.00
10 10009 3.23 87.00
Run Code Online (Sandbox Code Playgroud)
如您所见,有几行REQUEST_ID'10001'.查询需要做的是REQUEST_ID*QUANTITY然后对它们进行分组,使其仅返回最终价格(从乘法和(REQUEST_ID*QUANTITY)中添加所有结果).
这是我希望获得的预期结果(REQUEST_ID 10003上的不同示例,
REQUEST_ID TOTAL_VALUE
10003 14.07
10004 20.75
...
...
Run Code Online (Sandbox Code Playgroud)
先感谢您.
Guy*_*kes 11
为什么使用"where"子句?
mysql> select * from test;
+------------+------------+----------+
| request_id | unit_value | quantity |
+------------+------------+----------+
| 1 | 3 | 2 |
| 1 | 19 | 1 |
| 2 | 6.76 | 0.75 |
| 2 | 18 | 0.5 |
+------------+------------+----------+
4 rows in set (0.00 sec)
mysql> SELECT request_id, sum(unit_value * quantity) as x from test group by request_id;
+------------+--------------------+
| request_id | x |
+------------+--------------------+
| 1 | 25 |
| 2 | 14.070000171661377 |
+------------+--------------------+
2 rows in set (0.00 sec)
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
34909 次 |
| 最近记录: |