Grupo SQL por Mês da Coluna de Data na Tabela Diferente - mysql, sql

Vamos dizer que eu tenho uma tabela de pedidos com duas colunas simples, id e data.

encomendas

+----+------------+
| id | date       |
+----+------------+
| 24 | 2014-04-15 |
| 25 | 2014-07-09 |
| 26 | 2014-09-08 |
| 27 | 2014-09-04 |
| 28 | 2014-04-12 |
+----+------------+

Então eu tenho uma tabela dinâmica anexando um monte de Unid para encomendas.

item_order

+----+----------+---------+
| id | order_id | item_id |
+----+----------+---------+
| 21 |       19 |      20 |
| 22 |       20 |      21 |
| 23 |       21 |      22 |
| 24 |       22 |      23 |
| 25 |       23 |      24 |
+----+----------+---------+

Como posso construir uma consulta que me dará uma contagem do total de itens (grupo por mês) para um determinado ano?

Respostas:

1 para resposta № 1

Isto é um join e group by inquerir:

select year(o.date), month(o.date),
count(*) as NumItems, count(distinct oi.item_id) as NumDistinctItems
from orders o join
item_order io
on o.id = io.order_id
group by year(o.date), month(o.date);

Cardápio