2011-12-16 86 views
2

我想顯示訂單表中的幾列,其中一列是衍生的,顯示了英鎊訂單價格,該價格已使用另一個匯率換算表。匯率本身依賴於訂單表中的其他兩列。回覆一個MySQL表,其中一列來自兩個其他列和第二個表

的2個表是:

TABLE `orders` 
`id` 
`customer` 
`season_id` 
`order_id` 
`style_id` 
`quantity` 
'currency' 
`order_price` 

TABLE `forex` 
`id` 
`currency` 
`season_id` 
`rate` 

currency | season_id | rate 
USD  | W2012 | 1.5600 
USD  | S2012 | 1.5100 
EUR  | W2012 | 1.1510  
EUR  | S2012 | 1.1800  
CAD  | S2012 | 1.4600 
CAD  | S2012 | 1.5010  

我需要使用適當的匯率(率在外匯表),這取決於貨幣類型order_price(訂單表)轉換成英鎊訂單價格(如美元,EUR - 貨幣Orders表),並隨季節變化(如冬,春 - season_id Orders表)

所以訂單表的瀏覽器回聲應該是這個樣子:

customer|season_id |style_id|quantity|currency|order_price|rate |price GBP| 
USA  |W2012  |6200 |2,550 |USD  |35,000  |1.5600 |22,436 | 
Germany |W2012  |6200 |3,000 |EUR  |45,000  |1.1510 |39,096 | 
Germany |S2012  |7220 |5,000 |EUR  |55,000  |1.1650 |47,210 | 

因此,該陳述將沿着以下線條顯示:exchange_rate表中的匯率對應於訂單表中的season_id和貨幣。

如何在select語句中獲得正確的匯率以便能夠顯示與其他列一起的GBP訂單價格?

對於凌亂的解釋道歉,在這方面仍然很綠,但男孩我想了解更多!

謝謝, 德里克。

回答

1
SELECT o.customer, 
o.season_id, 
o.style_id, 
o.quantity, 
o.currency 
o.order_price, 
o.rate, 
round(o.order_price/f.rate) as "price GBP" <-- assuming you need a round figure 
from orders as o 
inner join forex as f 
on o.season_id = f.season_id 
and o.currency = f.currency 

之間,MySQL不會對貨幣格式12,300
如果你需要,它會需要一些額外的處理格式化字符串/ numbe一個原生支持。

+0

感謝您真正快速的答覆ajreal以及別名提示 - 這可以節省時間,並且在查看長公式時更容易! – Derek 2011-12-16 17:32:33

相關問題