所以我有这个精彩的查询,感谢用户bonCodigo in a previous question他回答我:
SELECT
ticker,
`Date` as date,
`Daily Open`,
`Daily High`,
`Daily Low`,
`Daily Close`,
concat(round(pxpct*100,2),'%') `Percent change`
FROM
(select case when ticker <> @pxticker then @pxclose := null end,
p.*,
(`Daily Close`-@pxclose) as pxchange,
(`Daily Close`-@pxclose)/@pxclose as pxpct,
(@pxclose := `Daily Close`),
(@pxticker := ticker) from viewDailyOHLCPrices p
JOIN
(select @pxclose := null, @pxticker := ticker from viewDailyOHLCPrices order by ticker, date limit 1) as a
order by ticker, date ) as b
order by ticker, date asc
返回我的结果:
TICKER DATE OPEN HIGH LOW CLOSE PXCHANGE PXPCT
AAAE 11-26-2012 0.01 0.01 0.01 0.01 (null) (null)
AAAE 11-27-2012 0.013 0.014 0.0083 0.014 0.004 40.0000%
AAAE 11-28-2012 0.014 0.0175 0.014 0.0165 0.0025 17.8571%
AAAE 11-29-2012 0.0175 0.0175 0.0137 0.0137 -0.0028 -16.9697%
AAMRQ 11-26-2012 0.4411 0.53 0.4411 0.529 (null) (null)
AAMRQ 11-27-2012 0.51 0.511 0.461 0.495 -0.034 -6.4272%
AAMRQ 11-28-2012 0.482 0.49 0.43 0.464 -0.031 -6.2626%
AAMRQ 11-29-2012 0.4505 0.459 0.4411 0.459 -0.005 -1.0776%
AAMRQ 11-30-2012 0.45 0.457 0.4455 0.4568 -0.0022 -0.4793%
现在我有了一个观点,我们称之为简单myview
,并假设它有字段:date, ticker, v1, v2
有没有办法可以将view1的结果与上面的查询结果一起加入,所以我最终会得到这样的结果?
DATE TICKER v1 v2 DATE OPEN HIGH LOW CLOSE PXCHANGE PXPCT
11-25-2012 AAAE 117 287 11-26-2012 0.01 0.01 0.01 0.01 (null) (null)
11-26-2012 AAAE 339 159 11-27-2012 0.013 0.014 0.0083 0.014 0.004 40.0000%
11-27-2012 AAAE 219 937 11-28-2012 0.014 0.0175 0.014 0.0165 0.0025 17.8571%
11-28-2012 AAAE 821 403 11-29-2012 0.0175 0.0175 0.0137 0.0137 -0.0028 -16.9697%
11-25-2012 AAMRQ 263 721 11-26-2012 0.4411 0.53 0.4411 0.529 (null) (null)
11-26-2012 AAMRQ 173 932 11-27-2012 0.51 0.511 0.461 0.495 -0.034 -6.4272%
11-27-2012 AAMRQ 218 364 11-28-2012 0.482 0.49 0.43 0.464 -0.031 -6.2626%
11-28-2012 AAMRQ 234 844 11-29-2012 0.4505 0.459 0.4411 0.459 -0.005 -1.0776%
11-29-2012 AAMRQ 821 472 11-30-2012 0.45 0.457 0.4455 0.4568 -0.0022 -0.4793%
正如您所看到的,我想加入myview
以及ticker
和date
字段的查询(以下交易日的日期如果是第二个日期列)。这很重要,因为myview
来自一个表的查询,其中我每天都有数据,包括星期六和星期日,但是查看viewDailyOHLCPrices
查询表格,我只有开放交易日的数据(通常是Mon-周五......但星期六和星期日没有数据,也没有工作日假期的数据。
因此,第二个日期列必须是下一个交易日(viewDailyOHLCPrices
视图中有数据的第二天)。
所以在我硬编码的示例结果中,在第一行中,我确实想要值v1
&amp; v2
(星期日)的11-25-2012
,open
(星期一)的high
,low
,close
,11-26-2012
价格,以及11-26-2012
(星期一)和11-23-2012
(星期五)之间的价格变化......等等。
我在开头发布的查询已经处理了从一天到有前一天的有效数据增加/减少百分比(PXPT)(对于那个ticker
)
(在这种情况下,第一行的PXPCT为'(null)',因为我没有'11-25-2012之前的数据')
我知道我可以加入2个或更多表,或者2个或更多个视图,但我不确定你是否可以加入一个视图和一个查询(就像在我的问题中一样)。
我真的希望我没有让我的问题变得复杂或凌乱。请不要犹豫,要求您提供任何可能需要的澄清; - )
谢谢! 博加。