我是MDX的新手。请建议如何用MDX查询语言编写下面的T-SQL查询。
T-SQL:
SELECT wp.date,Sum(wp.bbls_oil)
AS BBLSOIL_TOTAL,Sum(wp.bbls_water)
AS BBLSWATER_TOTAL,Sum(wp.mcf_prod)
AS MCF_PROD_TOTAL,Sum(wp.vent_flare)
AS VENT_FLARE_TOTAL
FROM well_prod_bst_horiz_og_2_yrs wp, well_index wi
WHERE wp.fileno = wi.fileno
AND wp.date <= :startDate
AND wp.date >= :endDate
AND wi.apino IN (:wellids)
GROUP BY wp.date ORDER BY wp.date ASC";
在上面的查询中,动态提供了开始和结束日期值。
答案 0 :(得分:4)
假设您有名为BBLSOIL
,BBLSWATER
,MCF_PROD
和VENT_FLARE_TOTAL
的措施,并且您的日期属性名为[Date].[Date]
,而您的:startDate
}包含[Date].[Date].&[20120101]
,:endDate
包含[Date].[Date].&[20141231]
,您的多维数据集名为Name of your Cube
,您可以写
SELECT {
Measures.[BBLSOIL],
Measures.[BBLSWATER],
Measures.[MCF_PROD],
Measures.[VENT_FLARE_TOTAL]
}
ON COLUMNS,
[Date].[Date].&[20120101] : [Date].[Date].&[20141231]
ON ROWS
FROM [Name of your Cube]
我。即您在列轴上放置了包含所需度量列表的MDX集,并在行轴上放置了一个范围(由:
指定)。 MDX不需要像Sum
和GROUP BY
这样的聚合,这些聚合由多维数据集定义处理。