我尝试了一些例子和很多查询,但我无法得到这个工作。 我有这样的方案:sql选择问题(mysql)
TABLE order
ID |...| WHEN
1 |...|2016-12-14
2 |...|2016-12-14
TABLE item
ID|...|NAME
1 |...|Pen
2 |...|Pencil
3 |...|Knife
TABLE order_itens
ID |...|amount|ID_order|ID_item|
1 |...|5 |1 |1
2 |...|2 |1 |2
3 |...|1 |1 |3
4 |...|10 |2 |1
5 |...|2 |2 |2
6 |...|5 |2 |3
ID_item是TABLE.item.id的FK; ID_order是TABLE.order.id的FK;
我需要通过'order.whhen < =(某个自定义日期)'来获得所有注册表,并且SUM是每个项目(Pen,Pencil,Knife等)的数量。就像,在12月当月(2016年12月1日至2016年12月31日),我在此数据库登记:
count | NAME
15 | Pen
4 | Pencil
6 | Knife
我怎样才能实现呢?
刚刚加入所有3个表,添加一个'WHERE'条款的日期,并以'SUM()'和'GROUP BY item.id' 。 – Barmar
你可以发表你曾尝试过吗? –
@Barmar这为我工作。非常感谢!最后的查询是将这个'''SELECT SUM(b.amount)作为count,c.name FROM'order' a,'order_itens' b,'item' c WHERE a.when> = MYDATEHERE和b.id_order = a.id AND b.id_item = c.id GROUP BY c.id; ''' – PMateus