因此,感谢用户 bonCodigo在他回答我的上一个问题中,我有了这个精彩的查询:
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
viewDailyOHLCPrices
因此,在我硬编码的示例结果中,在第一行中,我确实想要(星期日)的值v1
& v2
, (星期一)的价格,以及(星期一)和(星期五)之间的价格变化......等等。11-25-2012
open
high
low
close
11-26-2012
11-26-2012
11-23-2012
我在开头发布的查询已经处理了从一天到有价格数据的前一天的百分比增加/减少(PXPT)(对于那个ticker
)
(在这种情况下,第一行的 PXPCT 为“(空)”,只是因为我没有“2012 年 11 月 25 日”之前的数据)
我知道我可以加入 2 个或更多表,或者 2 个或更多视图,但我不确定你是否可以加入一个视图和一个查询(就像我的问题一样)。
我真的希望我没有让我的问题过于复杂或混乱。请不要犹豫,询问您可能需要的任何说明;-)
谢谢!,博加。