Mysql查询SUM组?

时间:2014-09-24 06:38:17

标签: php mysql sum

我有这个表格的例子

ORDER

  • orders_id
  • order_article_id
  • order_invoice_id
  • order_customer_id
  • order_qty

行示例

  • 66 8 32 29 15
  • 66 8 32 29 30

我确实在查询类似的内容

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

3 个答案:

答案 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)
;    

See SQLFiddle demo

答案 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