如何获取 mysql 中另一列中所有记录的总和
How to get sum of all records in another column in mysql
我想在不改变原始数量的情况下在另一列中显示特定列的所有总和。下面是我的 table.
我的原创batch_requesttable
+----------+-------------+
| order_id | Ordertype |
+----------+------------+
| 31234567 | A1 |
| 5xyzsder | A1 |
| 8DQVIHSC | A1 |
| xyz123 | B2 |
| t123 | B2 |
+----------+-------------+
原版reports_reftable
+----------+---------------+---------------+
| order_id | SUBMITTED_QTY | STOCK_ID |
+----------+---------------+---------------+
| 31234567 | 3.00 | 4032611179505 |
| 5xyzsder | 3.00 | 4032611179505 |
| 8DQVIHSC | 4.00 | 4032611179505 |
| xyz123 | 5.00 | 4032611179505 |
| t123 | 15.00| 4032611179505 |
+----------+---------------+---------------+
我的查询结果
+----------+---------------+---------------+
| order_id | SUBMITTED_QTY | STOCK_ID |
+----------+---------------+---------------+
| 31234567 | 3.00 | 4032611179505 |
| 5xyzsder | 3.00 | 4032611179505 |
| 8DQVIHSC | 4.00 | 4032611179505 |
+----------+---------------+---------------+
我想要的输出是这样的。
+----------+---------------+---------------+------+
| order_id | SUBMITTED_QTY | STOCK_ID |Total |
+----------+---------------+---------------+------+
| 31234567 | 3.00 | 4032611179505 |10.00 |
| 5xyzsder | 3.00 | 4032611179505 |10.00 |
| 8DQVIHSC | 4.00 | 4032611179505 |10.00 |
+----------+---------------+---------------+------+
For this my query is
SELECT ref.order_id,SUM(ref.SUBMITTED_QTY) SUBMITTED_QTY, ref.STOCK_ID
来自 batch_request 博
JOIN reports_ref ref ON bo.order_id = ref.order_id WHERE ref.STOCK_ID = '4032611179505'
但是我正在解决这个问题 put.How 以实现我想要的输出?
+----------+---------------+---------------+
| order_id | SUBMITTED_QTY | STOCK_ID |
+----------+---------------+---------------+
| 31234567 | 10.00| 4032611179505 |
+----------+---------------+---------------+
如何实现我想要的输出?谁能告诉我哪里做错了?
这是一个原始查询
SELECT ref.order_id,
SUM(ref.SUBMITTED_QTY) SUBMITTED_QTY,
ref.STOCK_ID
FROM batch_request bo
JOIN reports_ref ref
ON bo.order_id = ref.order_id
WHERE ref.STOCK_ID = '4032611179505'
AND bo.order_type = 'A1'
AND DATE(ref.inserted_on) BETWEEN '2015-01-01' AND '2015-03-02'
试试这个:
SELECT ref.order_id, ref.SUBMITTED_QTY, ref.STOCK_ID, SUM(ref.SUBMITTED_QTY) as Total FROM reports_ref as ref JOIN batch_requests as bo ON bo.order_id = ref.order_id WHERE ref.STOCK_ID = '4032611179505';
SELECT ref.order_id,ref.SUBMITTED_QTY, ref.STOCK_ID ,
t.total
FROM reports_ref ref
INNER JOIN (
SELECT DISTINCT order_id
FROM batch_request
WHERE order_type = 'A1'
) as bo
ON bo.order_id = ref.order_id
LEFT JOIN (
SELECT
STOCK_ID,
SUM(SUBMITTED_QTY) as total
FROM reports_ref
WHERE STOCK_ID = '4032611179505'
GROUP BY STOCK_ID
) AS t
ON t.STOCK_ID = ref.STOCK_ID
WHERE ref.STOCK_ID = '4032611179505'
AND DATE(ref.inserted_on) BETWEEN '2015-01-01' AND '2015-03-02'
我想在不改变原始数量的情况下在另一列中显示特定列的所有总和。下面是我的 table.
我的原创batch_requesttable
+----------+-------------+
| order_id | Ordertype |
+----------+------------+
| 31234567 | A1 |
| 5xyzsder | A1 |
| 8DQVIHSC | A1 |
| xyz123 | B2 |
| t123 | B2 |
+----------+-------------+
原版reports_reftable
+----------+---------------+---------------+
| order_id | SUBMITTED_QTY | STOCK_ID |
+----------+---------------+---------------+
| 31234567 | 3.00 | 4032611179505 |
| 5xyzsder | 3.00 | 4032611179505 |
| 8DQVIHSC | 4.00 | 4032611179505 |
| xyz123 | 5.00 | 4032611179505 |
| t123 | 15.00| 4032611179505 |
+----------+---------------+---------------+
我的查询结果
+----------+---------------+---------------+
| order_id | SUBMITTED_QTY | STOCK_ID |
+----------+---------------+---------------+
| 31234567 | 3.00 | 4032611179505 |
| 5xyzsder | 3.00 | 4032611179505 |
| 8DQVIHSC | 4.00 | 4032611179505 |
+----------+---------------+---------------+
我想要的输出是这样的。
+----------+---------------+---------------+------+
| order_id | SUBMITTED_QTY | STOCK_ID |Total |
+----------+---------------+---------------+------+
| 31234567 | 3.00 | 4032611179505 |10.00 |
| 5xyzsder | 3.00 | 4032611179505 |10.00 |
| 8DQVIHSC | 4.00 | 4032611179505 |10.00 |
+----------+---------------+---------------+------+
For this my query is
SELECT ref.order_id,SUM(ref.SUBMITTED_QTY) SUBMITTED_QTY, ref.STOCK_ID 来自 batch_request 博 JOIN reports_ref ref ON bo.order_id = ref.order_id WHERE ref.STOCK_ID = '4032611179505'
但是我正在解决这个问题 put.How 以实现我想要的输出?
+----------+---------------+---------------+
| order_id | SUBMITTED_QTY | STOCK_ID |
+----------+---------------+---------------+
| 31234567 | 10.00| 4032611179505 |
+----------+---------------+---------------+
如何实现我想要的输出?谁能告诉我哪里做错了?
这是一个原始查询
SELECT ref.order_id,
SUM(ref.SUBMITTED_QTY) SUBMITTED_QTY,
ref.STOCK_ID
FROM batch_request bo
JOIN reports_ref ref
ON bo.order_id = ref.order_id
WHERE ref.STOCK_ID = '4032611179505'
AND bo.order_type = 'A1'
AND DATE(ref.inserted_on) BETWEEN '2015-01-01' AND '2015-03-02'
试试这个:
SELECT ref.order_id, ref.SUBMITTED_QTY, ref.STOCK_ID, SUM(ref.SUBMITTED_QTY) as Total FROM reports_ref as ref JOIN batch_requests as bo ON bo.order_id = ref.order_id WHERE ref.STOCK_ID = '4032611179505';
SELECT ref.order_id,ref.SUBMITTED_QTY, ref.STOCK_ID ,
t.total
FROM reports_ref ref
INNER JOIN (
SELECT DISTINCT order_id
FROM batch_request
WHERE order_type = 'A1'
) as bo
ON bo.order_id = ref.order_id
LEFT JOIN (
SELECT
STOCK_ID,
SUM(SUBMITTED_QTY) as total
FROM reports_ref
WHERE STOCK_ID = '4032611179505'
GROUP BY STOCK_ID
) AS t
ON t.STOCK_ID = ref.STOCK_ID
WHERE ref.STOCK_ID = '4032611179505'
AND DATE(ref.inserted_on) BETWEEN '2015-01-01' AND '2015-03-02'