根据另一列的值筛选SQL列
以下是SQL表选项值:根据另一列的值筛选SQL列,sql,Sql,以下是SQL表选项值: t_date strike 1/1/2011 89 1/1/2011 105 1/2/2011 70 1/2/2011 82 和另一个表PriceValue: t_date price 1/1/2011 100 1/2/2011 93 我想做的是,为特定的t_日期选择罢工
t_date strike
1/1/2011 89
1/1/2011 105
1/2/2011 70
1/2/2011 82
和另一个表PriceValue:
t_date price
1/1/2011 100
1/2/2011 93
我想做的是,为特定的t_日期选择罢工t_date price strike limit
1/1/2011 100 89 (100*.9 = 90) , 89 < 100
1/2/2011 93 70 (93*.9 =83.7) , 70 < 83.7
1/2/2011 93 82 (93*.9 =83.7) , 82 < 83.7
注意:每个交易日都有不同的价差限制,是否可以为每个交易日应用特定的过滤器
select * from option_value ;
t_date | price | strike
----------+-------+--------
1/1/2011 | 100 | 89
1/1/2011 | | 105
1/2/2011 | 93 | 95
1/2/2011 | | 82
(4 rows)
因此,您需要将每一行与具有相同t_日期的行进行比较:
select * from option_value v1 join option_value v2 on v1.t_date=v2.t_date where v2.strike < (v1.price * 0.9);
t_date | price | strike | t_date | price | strike
----------+-------+--------+----------+-------+--------
1/1/2011 | 100 | 89 | 1/1/2011 | 100 | 89
1/2/2011 | 93 | 95 | 1/2/2011 | | 82
(2 rows)
应该能够得到你想要的结果:WHERE strike