0

したがって、以前の質問でユーザー 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 番目の日付列は次の取引日 (ビューにデータがある次の日) でなければなりません。tickerdatemyviewviewDailyOHLCPricesviewDailyOHLCPrices

したがって、ハードコーディングした結果の例では、最初の行で、(日曜日) の & の値、(v1月曜日v2)の価格、および(月曜日) と(金曜日)の間の価格の変化が必要です...等々。11-25-2012openhighlowclose11-26-201211-26-201211-23-2012

最初に投稿したクエリは、ある日から価格データがある前日までのパーセント増減 (PXPT) を既に処理しています (そのためticker) 。

(この場合、'11-25-2012' より前のデータがないため、最初の行の PXPCT は '(null)' になっています)

2 つ以上のテーブル、または 2 つ以上のビューを結合できることはわかっていますが、ビューとクエリを結合できるかどうかはわかりません (私の質問のように)。

私の質問が過度に複雑になったり、面倒になったりしていないことを本当に願っています。ご不明な点がございましたら、お気軽にお問い合わせください ;-)

ありがとう、ボガ。

4

0 に答える 0