2015-08-09 73 views
0

我需要生成像下面的表的报表如何写一个SQL查询来生成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 

我将如何编写一个查询来获得同样的采集和模型的总和和计数的出售的单位数量进行相应的计数它们的价格。

+0

结合第一部分是我从下面3表顺序表,收集表,模型表需要的结果。 – smrutiranjanpanda

+0

你有没有试过的代码?没有冒犯性,因为我在这里也是新手,但我认为问题应该包括你已经尝试过的代码。你说出你的问题的方式,就好像你希望它为你编码。我开始做,但后来意识到你没有代码:-) –

+1

@ user3380012你确定贴出的价格总和是正确的吗?我想美元模型1301的价格应该是1000为2个单位 –

回答

1

使用一些聚集

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

+1

完美!非常感谢。 – smrutiranjanpanda