Tsql 如何在MDX where子句中编写日期筛选器?

Tsql 如何在MDX where子句中编写日期筛选器?,tsql,mdx,Tsql,Mdx,我是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

我是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";
选择可湿性粉剂日期、总量(可湿性粉剂桶油)
总油量(可湿性粉剂/桶水)
作为BBLSWATER_总计,总和(可湿性粉剂、mcf_产品)
作为MCF生产总量,总和(可湿性粉剂放空火炬)
作为排气口\火炬\总计
来自水平井2年可湿性粉剂产量,井指数
其中wp.fileno=wi.fileno
和wp.date=:endDate
和wi.apino IN(:油井)
按wp.date分组按wp.date ASC排序”;

在上面的查询中,开始和结束日期值是动态提供的。

假设您有名为
BBLSOIL
BBLSWATER
MCF\u PROD
VENT\u FLARE\u TOTAL
的度量值,并且您的日期属性名为
[date]
,并且您的
:startDate
包含
[date]&[20120101]
和您的
:endDate
包含
[Date].[Date].&[20141231]
,并且您的多维数据集名为您将要编写的多维数据集的名称

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]

i、 e.将包含所需度量列表的MDX集合放在列轴上,并放置一个范围(由
指定)在行轴上。在MDX中不需要像
Sum
groupby
这样的聚合,它们由多维数据集定义处理。

假设您有名为
BBLSOIL
BBLSWATER
MCF\u PROD
VENT\u FLARE\u TOTAL
的度量值,并且您的日期属性名为
[date].[date]
,您的
:startDate
包含
[Date].[Date].&[20120101]
,您的
:endDate
包含
[Date].[Date].&20141231]
,并且您的多维数据集名为您将要编写的多维数据集的名称

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]

i、 e.将包含所需度量列表的MDX集合放在列轴上,并放置一个范围(由
指定)在行轴上。在MDX中不需要像
Sum
groupby
这样的聚合,它们由多维数据集定义处理。

对于动态参数,这取决于调用MDX语句的环境。您使用哪个环境?Reporting Services?自定义C#program?Integration Services ADO.net data source?SQL Server OpenQuery?Other?我在基于java的web应用程序中调用这些查询。编写一条MDX语句并传递给OLAP语句对象,然后调用excuteQuery()方法。通过这种方式,我将获得结果并基于结果构造JSON对象,然后将此JSON对象传递给highcharts数据对象。在这种情况下,为什么不直接将参数值放入MDX语句中?因为键可能由应用程序控制,我认为没有太多SQL(或MDX)注入潜力。对于动态参数,这取决于调用MDX语句的环境。您使用哪种环境?Reporting Services?自定义C#程序?Integration Services ADO.net数据源?SQL Server OpenQuery?其他?我在基于java的web应用程序中调用这些查询。编写MDX语句并传递到OLAP语句对象,然后调用excuteQuery()方法。通过这种方式,我将获得结果并基于结果构造JSON对象,然后将此JSON对象传递给highcharts数据对象。在这种情况下,为什么不直接将参数值放入MDX语句中?因为键可能由应用程序控制,我认为没有太多SQL(或MDX)注入电位。