2015-08-09 75 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