在mysql中获取特定周的产品计数

时间:2017-03-31 06:18:59

标签: php mysql codeigniter

我有3张桌子

Orders
id | name | order_date | total
------------------------------
1  | ABCD | 2017-03-29 | 60
2  | KJHS | 2017-03-29 | 80
3  | HGGG | 2017-03-30 | 90

item_orders

id | order_id | item_id
-----------------------
1  | 1        | 1
2  | 1        | 2
3  | 2        | 1
4  | 2        | 2

items
id  | item_name  | desc | price |
---------------------------------
1   | Brown      | jdsa | 20    
      Cardigan XL
---------------------------------
2   | Red Socks  | sada | 30
---------------------------------

我写的我的查询是

SELECT orders.*, item_orders.item_id,items.item_name,items.description,items.price
FROM ((orders
INNER JOIN item_orders ON orders.id = item_orders.item_id)
INNER JOIN items ON item_orders.item_id = items.id)
WHERE WEEKOFYEAR(orders.order_date)=WEEKOFYEAR(NOW());

现在我想把当前周订单表中的item_count总计与其总数相加。 像这样的东西显示了当前的周数据

BrownCardigan XL    12  $200
Red Socks           15  $350

像这样的东西。 我通过上面的查询从订单表中提取数据,现在我不知道如何计算订单表中的项目和当前一周的价格总和。

DEMO OUTPUT

1 个答案:

答案 0 :(得分:1)

您可以使用aggreagation功能和分组

  SELECT items.item_name, sum(orders.total), sum(orders.total*items.price)
  FROM orders
  INNER JOIN item_orders ON orders.id = item_orders.item_id
  INNER JOIN items ON item_orders.item_id = items.id
  WHERE WEEKOFYEAR(orders.order_date)=WEEKOFYEAR(NOW()
  GROUP BY  items.item_name
  ;