MDX と Microsoft SQL Server 2008 Analysis Services を使用しています。次のディメンションを持つ出荷キューブがあります。
* Measures: Quantity
* Time: Year/Month/Day
* Ship Date: Year/Month/Day
* Receipt Date: Year/Month/Day
毎月末日の輸送量を知りたい。どうやってやるの?SQL では、次のようになります。
SELECT
A.[Month], SUM(B.[Quantity]) AS [In Transit]
FROM
( SELECT [Month], MAX([Day]) AS [End of Month] FROM [Time] GROUP BY [Month] ) A
CROSS JOIN
( SELECT [Quantity], [Ship Date], [Receipt Date] FROM [Shipments] ) B
WHERE
B.[Ship Date] <= A.[End of Month]
AND B.[Receipt Date] > A.[End of Month]
GROUP BY
A.[Month]