如何编写SQL查询以在mysql中生成报告

时间:2015-08-09 05:45:43

标签: mysql

我需要生成如下表所示的报告

Collection       |Model|Units Sold|Price USD |Price Euro|Price gbp
-----------------+-----+----------+----------+----------+----------
Pays de la Loire | 1301|         2|      1000|        600|      400
Toscana          | 1301|         1|       500|        300|      200
Provence         | 1302|         1|       400|        400|      400

下面是我需要生成的3个表格

订单表

ID|collection_fk|model_fk
--+-----------+---------
 1|          1|        1
 2|          1|        1
 3|          2|        1
 4|          3|        2

收集表

ID|Collection
--+-----------
 1| Pays de la Loire
 2| Toscana
 3| Provence
 4|  Lorraine

模型表

ID|model_no   |collection_fk|price_usd|price_euro|price_gbp
--+-----------+-------------+---------+----------+---------
 1|       1301|            1|     500|        300|      200
 2|       1302|            1|     400|        400|      400
 3|       1303|            2|     300|        200|      500
 4|       1304|            3|     200|        100|      300

如何编写查询以获得相同的集合和模型的总和并计算销售的单位数量,并相应地计算其价格。

1 个答案:

答案 0 :(得分:2)

将联接与某些聚合一起使用

select 
c.Collection,
m.model_no,
count(o.ID) units_sold,
sum(m.price_usd),
sum(m.price_euro),
sum(m.price_gbp)
from model m
join `order` o on m.ID = o.model_fk
join collection c on c.ID = o.collection_fk
group by c.Collection,m.model_no
order by m.model_no

DEMO