我有这个表格的例子
ORDER
行示例
我确实在查询类似的内容
SELECT * FROM orders WHERE order_invoice_id = 1
在循环中我得到了所有结果简单,order_article_id,order_qty,但我得到了两个结果, 因为order_inovice_id是一样的。
结果1
order_article_id 8 order_qty 15
结果2
order_article_id 8 order_qty 30
我需要获得一个结果,我可以通过order_article_id对结果进行分组和计数
这是我需要的结果
RESULT
order_article_id 8 order_qty 45
答案 0 :(得分:1)
试试这个,改变where条件以适应数据。
SELECT order_article_id , SUM(order_qty) as order_qty
FROM orders WHERE order_invoice_id = 32
GROUP BY order_article_id
<强>结果强>
| ORDER_ARTICLE_ID | ORDER_QTY |
|------------------|-----------|
| 8 | 45 |
示例数据
CREATE TABLE orders
(`orders_id` int, `order_article_id` int, `order_invoice_id` int, `order_customer_id` int, `order_qty` int)
;
INSERT INTO orders
(`orders_id`, `order_article_id`, `order_invoice_id`, `order_customer_id`, `order_qty`)
VALUES
(66, 8, 32, 29, 15),
(66, 8, 32, 29, 30)
;
答案 1 :(得分:0)
您必须使用带有SUM聚合函数的GROUP BY查询:
SELECT
order_article_id,
SUM(qty) as sum_qty
FROM
orders
WHERE
order_invoice_id=1
GROUP BY
order_article_id
答案 2 :(得分:0)
SELECT order_id, SUM(order_qty) as 'Total Quantity'
FROM orders
WHERE order_article_id = 8
// where order_article_id in (1,2,3) if you have more id's and just want those
GROUP by order_article_id