0

クライアント情報を含む 2 つのテーブルがあります。

Portfolios
accountId   Date        portfolio
Barney      2013-06-28  Slate
Barney      2013-07-01  Bedrock
Barney      2013-07-02  Bedrock
Fred        2013-06-28  Slate
Fred        2013-07-01  Slate
Fred        2013-07-02  Slate


Money
accountId   Date        value
Barney  2013-06-28  $100.00
Barney  2013-07-01  $101.00
Barney  2013-07-02  $103.00
Fred    2013-06-28  $500.00
Fred    2013-07-01  $503.00
Fred    2013-07-02  $498.00

各戦略 (Slate と Bedrock) のポートフォリオ値を日付別に合計したいと思います。2 つを比較して、特定の戦略の実行中の値を取得できます。例えば:

SELECT Portfolios.accountId, Portfolios.Date, Portfolios.strategy,
     Money.accountId, Money.Date, Money.strategy, SUM(Money.value) as sumtotal
from Money, Portfolios
WHERE Money.accountId = Portfolios.accountId
AND Money.Date = Portfolios.Date
AND Portfolio.portfolio = 'Slate'
GROUP BY Date ORDER by Date ASC

これは機能します。

Date        value
2013-06-28  $600.00
2013-07-01  $503.00
2013-07-02  $498.00

私が仕事をすることができないのは、複数の日付で戦略を比較することです:

SUM (Money.value) WHERE Portfolios.strategy.date != Portfolios.strategy.date (-1)
GROUP BY Date

クエリが $100 のみを返すようにします (2013 年 6 月 28 日のバーニーのポートフォリオの最後の値は、彼が戦略を切り替える前です。

4

0 に答える 0