したがって、以前の質問でユーザー 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%
ご覧のとおり、およびフィールド ( 2 番目の日付列の場合は次の取引日myview
の日付)によるクエリを結合したいと思います。土日を含む毎日のデータがあるテーブルからクエリを実行するため、これは重要ですが、ビューはオープン取引日 (通常は月曜日から金曜日) のみのデータがあるテーブルをクエリしますが、土曜日と日曜日のデータはありません。日曜日及び平日休日の場合)。したがって、2 番目の日付列は次の取引日 (ビューにデータがある次の日) でなければなりません。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
) 。
(この場合、'11-25-2012' より前のデータがないため、最初の行の PXPCT は '(null)' になっています)
2 つ以上のテーブル、または 2 つ以上のビューを結合できることはわかっていますが、ビューとクエリを結合できるかどうかはわかりません (私の質問のように)。
私の質問が過度に複雑になったり、面倒になったりしていないことを本当に願っています。ご不明な点がございましたら、お気軽にお問い合わせください ;-)
ありがとう、ボガ。