我正在尝试提取期权量的报告数据以创建摘要。我的查询目前是这样的:
select concat(contract, ',', group_concat(traded), ',', sum(traded))
from
(
select contract, put_call, sum(oov+gv+pv) as traded
from report_data
where contract <> "AO" and date = '2013-01-30'
group by contract, put_call
order by contract asc, put_call asc
) temp
group by contract
它返回:
7A,9600,0,9600
BV,100,400,500
WA,0,900,900
WM,500,500
WZ,0,0
最后两行缺少数字的原因是因为当天数据库中只有 WM、WZ 合约的看跌期权。这与 7A 或 WA 不同,后者有看跌和看涨的数据,但没有交易量(因此为零)。
我一直在尝试将表加入或联合到自身,以便在没有合约看跌(或看涨)的地方生成零,但我似乎无法弄清楚。
有什么建议么?
=====================================
更简单:
数据:
Contract Put_call Traded OtherData
A P 10 blah
A C 5 blah
B P 10 blah
B C 0 blah
C P 10 blah
我想要一个查询结果:
A, 5, 10, 15
B, 0, 10, 10
C, 0, 10, 10
我的查询目前返回此:
A, 5, 10, 15
B, 0, 10, 10
C, 10, 10
C 合约调用缺少零,因为根本没有数据,而不是交易的数据为零。
请让我知道这是否有意义。