こんにちはマスター私はあなたの助けが必要です。
テーブルを持つ:
DataCollection
==================
PK Code
smallint RestaurantCode
smallint Year
tinyint Month
money Amount
money AccumulativeMonthsAmount
...
すべてのレストランで LastMonth の AccumulateAmount が必要です。
まず、「今年」のレストランごとの最後の月を取得します(この場合):
SELECT RestaurantCode, MAX(Month) as Month FROM DataCollection
WHERE (Year >= 2012 AND YEAR <= 2012) GROUP BY RestaurantCode
これをサブクエリとして使用して、 Last - AccumulativeMonthsAmount を取得します。
SELECT AccumulativeMonthsAmount FROM DataCollection
WHERE (RestaurantCode, Month)
IN (SELECT RestaurantCode, MAX(Month) as Month FROM DataCollection
WHERE (Year >= 2012 AND YEAR <= 2012) GROUP BY RestaurantCode)
しかし、演算子 IN が機能しません。どうすればよいですか?
年と月でソートされたサンプルデータ:
RestCode Amount Accumulative Year Month
123 343.3 345453.65 2012 12
123 124.7 345329.00 2012 11
...
122 312.2 764545.00 2012 12
122 123.4 764233.00 2012 11
...
999 500.98 2500.98 2012 6
999 100.59 2000.00 2012 5
...
すべてのレストランの先月の累積を取得したい:
RestCode Accumulative Month
123 345453.65 12
122 764545.00 12
99 2500.98 6
...