我有一個叫ORDEREXECUTIONS表,用於存儲已執行的所有訂單。這是一個多貨幣應用程序,因此該表有兩列CURRENCY1_ID和CURRENCY2_ID。合併2個選擇到一個SELECT在我的Rails應用程序
要獲得所有訂單的列表特定貨幣對(如EUR/USD)我需要線獲得總計:
v = Orderexecution.where("is_master=1 and currency1_id=? and currency2_id=? and created_at>=?",c1,c2,Time.now()-24.hours).sum("quantity").to_d
v+= Orderexecution.where("is_master=1 and currency1_id=? and currency2_id=? and created_at>=?",c2,c1,Time.now()-24.hours).sum("unitprice*quantity").to_d
注意,我的SUM()公式取決於不同貨幣的順序。 例如如果我想總訂購的貨幣對美元則它執行的數量(對美元匯率假設ID爲1和歐元爲2
v = Orderexecution.where("is_master=1 and currency1_id=? and currency2_id=? and created_at>=?",1,2,Time.now()-24.hours).sum("quantity").to_d
v+= Orderexecution.where("is_master=1 and currency1_id=? and currency2_id=? and created_at>=?",2,1,Time.now()-24.hours).sum("unitprice*quantity").to_d
如何寫這篇文章的回報率,使其只觸發一個單獨的SQL聲明到MySQL
在2個查詢條件中,c1,c2的順序是否有意不同? – 2012-01-06 09:35:10
是的,這是故意的。我不會將數據存儲在數據庫中。 currency1_id始終是買入貨幣,currency2_id是賣出貨幣。我在一張桌子上購買和銷售。 – KKK 2012-01-06 09:39:07