建立這個查詢我對形式的事務日誌表:MySQL的:無子選擇
| id | date | type | symbol | volume | unit_price | user_id |
| 1 | 2016-01-01 | BUY | AAPL | 100 | 100.00 | a |
| 2 | 2016-01-02 | SELL | AAPL | 50 | 110 | a |
我試圖建立一個視圖,顯示基於這些交易的當前餘額。一些形式:
| user_id | symbol | total_volume | value |
到目前爲止,我有:
SELECT
t.user_id,
t.symbol,
sum(t.volume * t.multiplier) as total_volume,
sum(t.volume * t.unit_price * t.multiplier) as value
FROM (
SELECT
*,
CASE type
WHEN 'SELL' THEN -1
WHEN 'BUY' THEN 1
END as multiplier
FROM transaction
) t
GROUP BY t.user_id, t.symbol;
這讓我我需要什麼,但我不能創建此作爲,因爲子選擇的景色。有沒有另外一種方法可以做到這一點,使我能夠創建它作爲一個視圖?
什麼錯誤,你當你試圖做這個查詢進入一個視圖? – Mureinik
@Mureinik只是一個通用的「創建視圖時出錯」,但我知道MySql不允許在視圖中進行子查詢,所以最有可能的是 – Edd
只需將內聯視圖查詢替換爲對事務表的引用即可。 然後用CASE表達式替換對't.multiplier'的引用。無論是否需要,它應該會有更好的表現。 – spencer7593