我有一个表格中的事务日志表:
| 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;
这让我得到了我需要但由于子选择而无法将其创建为视图。我是否有另一种方法可以将其创建为视图?
答案 0 :(得分:3)
只需使用@if (count($errors) > 0)
<div>
<ul>
@foreach ($errors->all() as $error)
<li>{{ $error }}</li>
@endforeach
</ul>
</div>
@endif
中的条件:
sum
如果SELECT t.user_id, t.symbol,
sum(case when t.type = 'SELL' then - volume
when t.type = 'BUY' then volume
end)
) as total_volume,
sum(t.volume * t.unit_price *
(case when t.type = 'SELL' then -1
when t.type = 'BUY' then 1
end)) as value
FROM transaction t
GROUP BY t.user_id, t.symbol;
仅采用这两个值,则可以将其简化为:
type