せずに、このクエリを構築する私は、フォーム内のトランザクション・ログ表を持っている:私はこれらの取引に基づいて、現在の残高を表示するビューを構築しようとしています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
トランザクションテーブルへの参照でインラインビュークエリを置き換えてください。 そして、 't.multiplier'への参照をCASE式で置き換えてください。それが必須であろうとなかろうと、それはより良いパフォーマンスをもたらすはずです。 – spencer7593