2011-07-10 9 views
1

私はSQLクエリを使用して1ティッカーの200日移動平均を正常に計算できますが、今私はVIEWを作成しようとしています。私は、次のクエリは、論理的なようだ立ち往生していますが、SQLエラー あり -このSQLクエリを解決するのに役立つ必要があります

SELECT AVG(Close) AS MA200 FROM equity 
INNER JOIN 
(
    SELECT Close 
    FROM equity_pricehistory 
    WHERE TickerID = equity.TickerID 
    ORDER BY Timestamp 
    DESC LIMIT 0,200 
) as Y 
+0

私はビューがサブクエリをサポートしていないと信じています。しかし、私は間違っているかもしれません。 –

+1

サブクエリには独自のスコープがあります。 – bernie

+0

アダム、私は達成しようとしていることがすべてSQLで可能であるかどうかを知りたいと思っています。私はできるだけ多くのC++ユーティリティを書くのを避けようとしています。 – user805547

答えて

0

がそれを手に入れた「#1054不明な列 『equity.TickerIDは』 『where句』に」。これはトリックを行います。私が指摘するだろう

SELECT equity.id, AVG(equity_pricehistory.close) AS MA200 
FROM equity 
INNER JOIN equity_pricehistory ON equity_pricehistory.TickerID = equity.id 
GROUP BY equity_pricehistory.TickerID 
ORDER BY Timestamp DESC 
LIMIT 0 , 200 

ことの一つは、あなたがすでにあなたがequity_pricehistoryにあるたいすべてのTickerIDsを知っていれば、あなたは完全に全体のequityテーブルを無視することができることです。

+0

提案していただきありがとうございますが、私はすべての10,000+ティッカーのためにMA200でテーブルを返そうとしています。このクエリはそうしないようです。 – user805547

+0

あなたのスキーマを教えてください。私はどの列がどこにあるのかわからない。 – Swift

+0

equity_pricehistory列がTickerID、閉じる、タイムスタンプである。テーブル資本、。英語では、株式には株価指数のリストが含まれています。価格ヒストリーはすべてのティッカーのためのすべての毎日の相場を含んでいる大きいテーブルです。私はすべてのテロップのMA200のテーブルを取得するクエリを生成したい。 – user805547

関連する問題