使用 MDX 仅查询多维数据集中的维度

Querying only dimension in a cube using MDX

我有一个包含一个事实 table 和四个维度(日期、产品、商店和国家/地区)的多维数据集。像往常一样使用主外键将维度连接到事实。

我想查询此模型以仅获取维度信息(即我不需要任何事实 table 列)。例如,我想查看所有国家/地区所有商店的状态(ACTIVE/INACTIVE 等)。

我写的查询是

WITH
MEMBER [Dim shop.Shop id].[Shop count] AS
    Count([Dim shop.Shop id].Members, EXCLUDEEMPTY) --select the count of shop members

SET [~ROWS_Dim country.Country name] AS
    {[Dim country.Country name].[Country name].Members} --All countries

SET [~ROWS_Dim shop.Status] AS
    {[Dim shop.Status].[Status].Members} --All shop statuses
SELECT
NON EMPTY [Dim shop.Shop id].[Shop count] ON COLUMNS,
NON EMPTY NonEmptyCrossJoin([~ROWS_Dim country.Country name], [~ROWS_Dim shop.Status]) ON ROWS
FROM [cube]
WHERE ({[Dim shop.Date to].[2199-12-31 22:59:59.999],[Dim shop.Date to].[2199-12-31 23:59:59.999]}) --Slicing to get only currently inventoried shops

架构如下所示

<Schema name="cube">
  <Dimension name="Dim country">
    <Hierarchy name="Cid" hasAll="true" primaryKey="cid">
      <Table name="dim_country" schema="dw_pp"/>
      <Level name="Cid" uniqueMembers="false" column="cid" type="Numeric">
      </Level>
    </Hierarchy>
    <Hierarchy name="Country code name" hasAll="true" primaryKey="cid">
      <Table name="dim_country" schema="dw_pp"/>
      <Level name="Country code name" uniqueMembers="false" column="country_code_name" type="String">
      </Level>
    </Hierarchy>
    <Hierarchy name="Country currency" hasAll="true" primaryKey="cid">
      <Table name="dim_country" schema="dw_pp"/>
      <Level name="Country currency" uniqueMembers="false" column="country_currency" type="String">
      </Level>
    </Hierarchy>
    <Hierarchy name="Country ga id" hasAll="true" primaryKey="cid">
      <Table name="dim_country" schema="dw_pp"/>
      <Level name="Country ga id" uniqueMembers="false" column="country_ga_id" type="Numeric">
      </Level>
    </Hierarchy>
    <Hierarchy name="Country name" hasAll="true" primaryKey="cid">
      <Table name="dim_country" schema="dw_pp"/>
      <Level name="Country name" uniqueMembers="false" column="country_name" type="String">
      </Level>
    </Hierarchy>
    <Hierarchy name="Date from" hasAll="true" primaryKey="cid">
      <Table name="dim_country" schema="dw_pp"/>
      <Level name="Date from" uniqueMembers="false" column="date_from">
      </Level>
    </Hierarchy>
    <Hierarchy name="Date to" hasAll="true" primaryKey="cid">
      <Table name="dim_country" schema="dw_pp"/>
      <Level name="Date to" uniqueMembers="false" column="date_to">
      </Level>
    </Hierarchy>
    <Hierarchy name="Version" hasAll="true" primaryKey="cid">
      <Table name="dim_country" schema="dw_pp"/>
      <Level name="Version" uniqueMembers="false" column="version" type="Numeric">
      </Level>
    </Hierarchy>
  </Dimension>
  <Dimension name="Dim date">
    <Hierarchy name="Calendar month" hasAll="true" primaryKey="date_key">
      <Table name="dim_date" schema="dw_pp"/>
      <Level name="Calendar month" uniqueMembers="false" column="calendar_month" type="Numeric">
      </Level>
    </Hierarchy>
    <Hierarchy name="Calendar month name" hasAll="true" primaryKey="date_key">
      <Table name="dim_date" schema="dw_pp"/>
      <Level name="Calendar month name" uniqueMembers="false" column="calendar_month_name" type="String">
      </Level>
    </Hierarchy>
    <Hierarchy name="Calendar week" hasAll="true" primaryKey="date_key">
      <Table name="dim_date" schema="dw_pp"/>
      <Level name="Calendar week" uniqueMembers="false" column="calendar_week" type="Numeric">
      </Level>
    </Hierarchy>
    <Hierarchy name="Calendar year" hasAll="true" primaryKey="date_key">
      <Table name="dim_date" schema="dw_pp"/>
      <Level name="Calendar year" uniqueMembers="false" column="calendar_year" type="Numeric">
      </Level>
    </Hierarchy>
    <Hierarchy name="Date" hasAll="true" primaryKey="date_key">
      <Table name="dim_date" schema="dw_pp"/>
      <Level name="Date" uniqueMembers="false" column="date">
      </Level>
    </Hierarchy>
    <Hierarchy name="Date key" hasAll="true" primaryKey="date_key">
      <Table name="dim_date" schema="dw_pp"/>
      <Level name="Date key" uniqueMembers="false" column="date_key" type="Numeric">
      </Level>
    </Hierarchy>
    <Hierarchy name="Day of month" hasAll="true" primaryKey="date_key">
      <Table name="dim_date" schema="dw_pp"/>
      <Level name="Day of month" uniqueMembers="false" column="day_of_month" type="Numeric">
      </Level>
    </Hierarchy>
    <Hierarchy name="Day of week" hasAll="true" primaryKey="date_key">
      <Table name="dim_date" schema="dw_pp"/>
      <Level name="Day of week" uniqueMembers="false" column="day_of_week" type="String">
      </Level>
    </Hierarchy>
    <Hierarchy name="Day of week name" hasAll="true" primaryKey="date_key">
      <Table name="dim_date" schema="dw_pp"/>
      <Level name="Day of week name" uniqueMembers="false" column="day_of_week_name" type="String">
      </Level>
    </Hierarchy>
    <Hierarchy name="Day of year" hasAll="true" primaryKey="date_key">
      <Table name="dim_date" schema="dw_pp"/>
      <Level name="Day of year" uniqueMembers="false" column="day_of_year" type="Numeric">
      </Level>
    </Hierarchy>
    <Hierarchy name="Quarter" hasAll="true" primaryKey="date_key">
      <Table name="dim_date" schema="dw_pp"/>
      <Level name="Quarter" uniqueMembers="false" column="quarter" type="String">
      </Level>
    </Hierarchy>
  </Dimension>
  <Dimension name="Dim product">
    <Hierarchy name="Brand" hasAll="true" primaryKey="product_pk">
      <Table name="dim_product" schema="dw_pp"/>
      <Level name="Brand" uniqueMembers="false" column="brand" type="String">
      </Level>
    </Hierarchy>
    <Hierarchy name="Category id" hasAll="true" primaryKey="product_pk">
      <Table name="dim_product" schema="dw_pp"/>
      <Level name="Category id" uniqueMembers="false" column="category_id" type="Numeric">
      </Level>
    </Hierarchy>
    <Hierarchy name="Category name" hasAll="true" primaryKey="product_pk">
      <Table name="dim_product" schema="dw_pp"/>
      <Level name="Category name" uniqueMembers="false" column="category_name" type="String">
      </Level>
    </Hierarchy>
    <Hierarchy name="Code" hasAll="true" primaryKey="product_pk">
      <Table name="dim_product" schema="dw_pp"/>
      <Level name="Code" uniqueMembers="false" column="code" type="String">
      </Level>
    </Hierarchy>
    <Hierarchy name="Created" hasAll="true" primaryKey="product_pk">
      <Table name="dim_product" schema="dw_pp"/>
      <Level name="Created" uniqueMembers="false" column="created">
      </Level>
    </Hierarchy>
    <Hierarchy name="Created by" hasAll="true" primaryKey="product_pk">
      <Table name="dim_product" schema="dw_pp"/>
      <Level name="Created by" uniqueMembers="false" column="created_by" type="String">
      </Level>
    </Hierarchy>
    <Hierarchy name="Date from" hasAll="true" primaryKey="product_pk">
      <Table name="dim_product" schema="dw_pp"/>
      <Level name="Date from" uniqueMembers="false" column="date_from">
      </Level>
    </Hierarchy>
    <Hierarchy name="Date to" hasAll="true" primaryKey="product_pk">
      <Table name="dim_product" schema="dw_pp"/>
      <Level name="Date to" uniqueMembers="false" column="date_to">
      </Level>
    </Hierarchy>
    <Hierarchy name="Ean" hasAll="true" primaryKey="product_pk">
      <Table name="dim_product" schema="dw_pp"/>
      <Level name="Ean" uniqueMembers="false" column="ean" type="Numeric">
      </Level>
    </Hierarchy>
    <Hierarchy name="Image location high" hasAll="true" primaryKey="product_pk">
      <Table name="dim_product" schema="dw_pp"/>
      <Level name="Image location high" uniqueMembers="false" column="image_location_high" type="String">
      </Level>
    </Hierarchy>
    <Hierarchy name="Image location low" hasAll="true" primaryKey="product_pk">
      <Table name="dim_product" schema="dw_pp"/>
      <Level name="Image location low" uniqueMembers="false" column="image_location_low" type="String">
      </Level>
    </Hierarchy>
    <Hierarchy name="Image location thumb" hasAll="true" primaryKey="product_pk">
      <Table name="dim_product" schema="dw_pp"/>
      <Level name="Image location thumb" uniqueMembers="false" column="image_location_thumb" type="String">
      </Level>
    </Hierarchy>
    <Hierarchy name="Last modified by price" hasAll="true" primaryKey="product_pk">
      <Table name="dim_product" schema="dw_pp"/>
      <Level name="Last modified by price" uniqueMembers="false" column="last_modified_by_price" type="String">
      </Level>
    </Hierarchy>
    <Hierarchy name="Last modifiedby product" hasAll="true" primaryKey="product_pk">
      <Table name="dim_product" schema="dw_pp"/>
      <Level name="Last modifiedby product" uniqueMembers="false" column="last_modifiedby_product" type="String">
      </Level>
    </Hierarchy>
    <Hierarchy name="Level0 parent category id" hasAll="true" primaryKey="product_pk">
      <Table name="dim_product" schema="dw_pp"/>
      <Level name="Level0 parent category id" uniqueMembers="false" column="level0_parent_category_id" type="Numeric">
      </Level>
    </Hierarchy>
    <Hierarchy name="Level0 parent category name" hasAll="true" primaryKey="product_pk">
      <Table name="dim_product" schema="dw_pp"/>
      <Level name="Level0 parent category name" uniqueMembers="false" column="level0_parent_category_name" type="String">
      </Level>
    </Hierarchy>
    <Hierarchy name="Level1 parent category id" hasAll="true" primaryKey="product_pk">
      <Table name="dim_product" schema="dw_pp"/>
      <Level name="Level1 parent category id" uniqueMembers="false" column="level1_parent_category_id" type="Numeric">
      </Level>
    </Hierarchy>
    <Hierarchy name="Level1 parent category name" hasAll="true" primaryKey="product_pk">
      <Table name="dim_product" schema="dw_pp"/>
      <Level name="Level1 parent category name" uniqueMembers="false" column="level1_parent_category_name" type="String">
      </Level>
    </Hierarchy>
    <Hierarchy name="Manufacturer id" hasAll="true" primaryKey="product_pk">
      <Table name="dim_product" schema="dw_pp"/>
      <Level name="Manufacturer id" uniqueMembers="false" column="manufacturer_id" type="Numeric">
      </Level>
    </Hierarchy>
    <Hierarchy name="Modified product" hasAll="true" primaryKey="product_pk">
      <Table name="dim_product" schema="dw_pp"/>
      <Level name="Modified product" uniqueMembers="false" column="modified_product">
      </Level>
    </Hierarchy>
    <Hierarchy name="Price" hasAll="true" primaryKey="product_pk">
      <Table name="dim_product" schema="dw_pp"/>
      <Level name="Price" uniqueMembers="false" column="price" type="Numeric">
      </Level>
    </Hierarchy>
    <Hierarchy name="Price with shipping" hasAll="true" primaryKey="product_pk">
      <Table name="dim_product" schema="dw_pp"/>
      <Level name="Price with shipping" uniqueMembers="false" column="price_with_shipping" type="Numeric">
      </Level>
    </Hierarchy>
    <Hierarchy name="Product currency code" hasAll="true" primaryKey="product_pk">
      <Table name="dim_product" schema="dw_pp"/>
      <Level name="Product currency code" uniqueMembers="false" column="product_currency_code" type="String">
      </Level>
    </Hierarchy>
    <Hierarchy name="Product id" hasAll="true" primaryKey="product_pk">
      <Table name="dim_product" schema="dw_pp"/>
      <Level name="Product id" uniqueMembers="false" column="product_id" type="Numeric">
      </Level>
    </Hierarchy>
    <Hierarchy name="Product info id" hasAll="true" primaryKey="product_pk">
      <Table name="dim_product" schema="dw_pp"/>
      <Level name="Product info id" uniqueMembers="false" column="product_info_id" type="Numeric">
      </Level>
    </Hierarchy>
    <Hierarchy name="Product name" hasAll="true" primaryKey="product_pk">
      <Table name="dim_product" schema="dw_pp"/>
      <Level name="Product name" uniqueMembers="false" column="product_name" type="String">
      </Level>
    </Hierarchy>
    <Hierarchy name="Product page type" hasAll="true" primaryKey="product_pk">
      <Table name="dim_product" schema="dw_pp"/>
      <Level name="Product page type" uniqueMembers="false" column="product_page_type" type="String">
      </Level>
    </Hierarchy>
    <Hierarchy name="Product pk" hasAll="true" primaryKey="product_pk">
      <Table name="dim_product" schema="dw_pp"/>
      <Level name="Product pk" uniqueMembers="false" column="product_pk" type="Numeric">
      </Level>
    </Hierarchy>
    <Hierarchy name="Quality" hasAll="true" primaryKey="product_pk">
      <Table name="dim_product" schema="dw_pp"/>
      <Level name="Quality" uniqueMembers="false" column="quality" type="String">
      </Level>
    </Hierarchy>
    <Hierarchy name="Shop active" hasAll="true" primaryKey="product_pk">
      <Table name="dim_product" schema="dw_pp"/>
      <Level name="Shop active" uniqueMembers="false" column="shop_active" type="String">
      </Level>
    </Hierarchy>
    <Hierarchy name="Shop id" hasAll="true" primaryKey="product_pk">
      <Table name="dim_product" schema="dw_pp"/>
      <Level name="Shop id" uniqueMembers="false" column="shop_id" type="Numeric">
      </Level>
    </Hierarchy>
    <Hierarchy name="Shop paying" hasAll="true" primaryKey="product_pk">
      <Table name="dim_product" schema="dw_pp"/>
      <Level name="Shop paying" uniqueMembers="false" column="shop_paying" type="String">
      </Level>
    </Hierarchy>
    <Hierarchy name="Status product" hasAll="true" primaryKey="product_pk">
      <Table name="dim_product" schema="dw_pp"/>
      <Level name="Status product" uniqueMembers="false" column="status_product" type="String">
      </Level>
    </Hierarchy>
    <Hierarchy name="Tstamp" hasAll="true" primaryKey="product_pk">
      <Table name="dim_product" schema="dw_pp"/>
      <Level name="Tstamp" uniqueMembers="false" column="tstamp">
      </Level>
    </Hierarchy>
    <Hierarchy name="Version" hasAll="true" primaryKey="product_pk">
      <Table name="dim_product" schema="dw_pp"/>
      <Level name="Version" uniqueMembers="false" column="version" type="Numeric">
      </Level>
    </Hierarchy>
  </Dimension>
  <Dimension name="Dim shop">
    <Hierarchy name="Ac id" hasAll="true" primaryKey="shop_pk">
      <Table name="dim_shop" schema="dw_pp"/>
      <Level name="Ac id" uniqueMembers="false" column="ac_id" type="String">
      </Level>
    </Hierarchy>
    <Hierarchy name="Ac type" hasAll="true" primaryKey="shop_pk">
      <Table name="dim_shop" schema="dw_pp"/>
      <Level name="Ac type" uniqueMembers="false" column="ac_type" type="String">
      </Level>
    </Hierarchy>
    <Hierarchy name="Account status" hasAll="true" primaryKey="shop_pk">
      <Table name="dim_shop" schema="dw_pp"/>
      <Level name="Account status" uniqueMembers="false" column="account_status" type="String">
      </Level>
    </Hierarchy>
    <Hierarchy name="Afl network" hasAll="true" primaryKey="shop_pk">
      <Table name="dim_shop" schema="dw_pp"/>
      <Level name="Afl network" uniqueMembers="false" column="afl_network" type="String">
      </Level>
    </Hierarchy>
    <Hierarchy name="Afl param" hasAll="true" primaryKey="shop_pk">
      <Table name="dim_shop" schema="dw_pp"/>
      <Level name="Afl param" uniqueMembers="false" column="afl_param" type="String">
      </Level>
    </Hierarchy>
    <Hierarchy name="Capping" hasAll="true" primaryKey="shop_pk">
      <Table name="dim_shop" schema="dw_pp"/>
      <Level name="Capping" uniqueMembers="false" column="capping" type="Numeric">
      </Level>
    </Hierarchy>
    <Hierarchy name="Co id" hasAll="true" primaryKey="shop_pk">
      <Table name="dim_shop" schema="dw_pp"/>
      <Level name="Co id" uniqueMembers="false" column="co_id" type="String">
      </Level>
    </Hierarchy>
    <Hierarchy name="Co name" hasAll="true" primaryKey="shop_pk">
      <Table name="dim_shop" schema="dw_pp"/>
      <Level name="Co name" uniqueMembers="false" column="co_name" type="String">
      </Level>
    </Hierarchy>
    <Hierarchy name="Co type" hasAll="true" primaryKey="shop_pk">
      <Table name="dim_shop" schema="dw_pp"/>
      <Level name="Co type" uniqueMembers="false" column="co_type" type="String">
      </Level>
    </Hierarchy>
    <Hierarchy name="Contract number" hasAll="true" primaryKey="shop_pk">
      <Table name="dim_shop" schema="dw_pp"/>
      <Level name="Contract number" uniqueMembers="false" column="contract_number" type="String">
      </Level>
    </Hierarchy>
    <Hierarchy name="Contract type" hasAll="true" primaryKey="shop_pk">
      <Table name="dim_shop" schema="dw_pp"/>
      <Level name="Contract type" uniqueMembers="false" column="contract_type" type="String">
      </Level>
    </Hierarchy>
    <Hierarchy name="Country code" hasAll="true" primaryKey="shop_pk">
      <Table name="dim_shop" schema="dw_pp"/>
      <Level name="Country code" uniqueMembers="false" column="country_code" type="String">
      </Level>
    </Hierarchy>
    <Hierarchy name="Cpc" hasAll="true" primaryKey="shop_pk">
      <Table name="dim_shop" schema="dw_pp"/>
      <Level name="Cpc" uniqueMembers="false" column="cpc" type="Numeric">
      </Level>
    </Hierarchy>
    <Hierarchy name="Cpc earning" hasAll="true" primaryKey="shop_pk">
      <Table name="dim_shop" schema="dw_pp"/>
      <Level name="Cpc earning" uniqueMembers="false" column="cpc_earning" type="Numeric">
      </Level>
    </Hierarchy>
    <Hierarchy name="Cpo" hasAll="true" primaryKey="shop_pk">
      <Table name="dim_shop" schema="dw_pp"/>
      <Level name="Cpo" uniqueMembers="false" column="cpo" type="Numeric">
      </Level>
    </Hierarchy>
    <Hierarchy name="Created" hasAll="true" primaryKey="shop_pk">
      <Table name="dim_shop" schema="dw_pp"/>
      <Level name="Created" uniqueMembers="false" column="created">
      </Level>
    </Hierarchy>
    <Hierarchy name="Currency" hasAll="true" primaryKey="shop_pk">
      <Table name="dim_shop" schema="dw_pp"/>
      <Level name="Currency" uniqueMembers="false" column="currency" type="String">
      </Level>
    </Hierarchy>
    <Hierarchy name="Date from" hasAll="true" primaryKey="shop_pk">
      <Table name="dim_shop" schema="dw_pp"/>
      <Level name="Date from" uniqueMembers="false" column="date_from">
      </Level>
    </Hierarchy>
    <Hierarchy name="Date to" hasAll="true" primaryKey="shop_pk">
      <Table name="dim_shop" schema="dw_pp"/>
      <Level name="Date to" uniqueMembers="false" column="date_to">
      </Level>
    </Hierarchy>
    <Hierarchy name="Description" hasAll="true" primaryKey="shop_pk">
      <Table name="dim_shop" schema="dw_pp"/>
      <Level name="Description" uniqueMembers="false" column="description" type="String">
      </Level>
    </Hierarchy>
    <Hierarchy name="Image location high" hasAll="true" primaryKey="shop_pk">
      <Table name="dim_shop" schema="dw_pp"/>
      <Level name="Image location high" uniqueMembers="false" column="image_location_high" type="String">
      </Level>
    </Hierarchy>
    <Hierarchy name="Image location low" hasAll="true" primaryKey="shop_pk">
      <Table name="dim_shop" schema="dw_pp"/>
      <Level name="Image location low" uniqueMembers="false" column="image_location_low" type="String">
      </Level>
    </Hierarchy>
    <Hierarchy name="Image location thumb" hasAll="true" primaryKey="shop_pk">
      <Table name="dim_shop" schema="dw_pp"/>
      <Level name="Image location thumb" uniqueMembers="false" column="image_location_thumb" type="String">
      </Level>
    </Hierarchy>
    <Hierarchy name="Last modifiedby" hasAll="true" primaryKey="shop_pk">
      <Table name="dim_shop" schema="dw_pp"/>
      <Level name="Last modifiedby" uniqueMembers="false" column="last_modifiedby" type="String">
      </Level>
    </Hierarchy>
    <Hierarchy name="Modified" hasAll="true" primaryKey="shop_pk">
      <Table name="dim_shop" schema="dw_pp"/>
      <Level name="Modified" uniqueMembers="false" column="modified">
      </Level>
    </Hierarchy>
    <Hierarchy name="No deep links" hasAll="true" primaryKey="shop_pk">
      <Table name="dim_shop" schema="dw_pp"/>
      <Level name="No deep links" uniqueMembers="false" column="no_deep_links" type="Boolean">
      </Level>
    </Hierarchy>
    <Hierarchy name="Opening hours" hasAll="true" primaryKey="shop_pk">
      <Table name="dim_shop" schema="dw_pp"/>
      <Level name="Opening hours" uniqueMembers="false" column="opening_hours" type="String">
      </Level>
    </Hierarchy>
    <Hierarchy name="Pay status" hasAll="true" primaryKey="shop_pk">
      <Table name="dim_shop" schema="dw_pp"/>
      <Level name="Pay status" uniqueMembers="false" column="pay_status" type="String">
      </Level>
    </Hierarchy>
    <Hierarchy name="Score" hasAll="true" primaryKey="shop_pk">
      <Table name="dim_shop" schema="dw_pp"/>
      <Level name="Score" uniqueMembers="false" column="score" type="Numeric">
      </Level>
    </Hierarchy>
    <Hierarchy name="Shipping details" hasAll="true" primaryKey="shop_pk">
      <Table name="dim_shop" schema="dw_pp"/>
      <Level name="Shipping details" uniqueMembers="false" column="shipping_details" type="String">
      </Level>
    </Hierarchy>
    <Hierarchy name="Shipping fee" hasAll="true" primaryKey="shop_pk">
      <Table name="dim_shop" schema="dw_pp"/>
      <Level name="Shipping fee" uniqueMembers="false" column="shipping_fee" type="Numeric">
      </Level>
    </Hierarchy>
    <Hierarchy name="Shop id" hasAll="true" primaryKey="shop_pk">
      <Table name="dim_shop" schema="dw_pp"/>
      <Level name="Shop id" uniqueMembers="false" column="shop_id" type="Numeric">
      </Level>
    </Hierarchy>
    <Hierarchy name="Shop name" hasAll="true" primaryKey="shop_pk">
      <Table name="dim_shop" schema="dw_pp"/>
      <Level name="Shop name" uniqueMembers="false" column="shop_name" type="String">
      </Level>
    </Hierarchy>
    <Hierarchy name="Shop pk" hasAll="true" primaryKey="shop_pk">
      <Table name="dim_shop" schema="dw_pp"/>
      <Level name="Shop pk" uniqueMembers="false" column="shop_pk" type="Numeric">
      </Level>
    </Hierarchy>
    <Hierarchy name="Start date" hasAll="true" primaryKey="shop_pk">
      <Table name="dim_shop" schema="dw_pp"/>
      <Level name="Start date" uniqueMembers="false" column="start_date">
      </Level>
    </Hierarchy>
    <Hierarchy name="Status" hasAll="true" primaryKey="shop_pk">
      <Table name="dim_shop" schema="dw_pp"/>
      <Level name="Status" uniqueMembers="false" column="status" type="String">
      </Level>
    </Hierarchy>
    <Hierarchy name="Target country" hasAll="true" primaryKey="shop_pk">
      <Table name="dim_shop" schema="dw_pp"/>
      <Level name="Target country" uniqueMembers="false" column="target_country" type="String">
      </Level>
    </Hierarchy>
    <Hierarchy name="Type" hasAll="true" primaryKey="shop_pk">
      <Table name="dim_shop" schema="dw_pp"/>
      <Level name="Type" uniqueMembers="false" column="type" type="String">
      </Level>
    </Hierarchy>
    <Hierarchy name="Url" hasAll="true" primaryKey="shop_pk">
      <Table name="dim_shop" schema="dw_pp"/>
      <Level name="Url" uniqueMembers="false" column="url" type="String">
      </Level>
    </Hierarchy>
    <Hierarchy name="Url policy" hasAll="true" primaryKey="shop_pk">
      <Table name="dim_shop" schema="dw_pp"/>
      <Level name="Url policy" uniqueMembers="false" column="url_policy" type="String">
      </Level>
    </Hierarchy>
    <Hierarchy name="Version" hasAll="true" primaryKey="shop_pk">
      <Table name="dim_shop" schema="dw_pp"/>
      <Level name="Version" uniqueMembers="false" column="version" type="Numeric">
      </Level>
    </Hierarchy>
  </Dimension>
  <Cube name="cube">
    <Table name="fc_analytics" schema="dw_pp"/>
    <DimensionUsage name="Dim country" source="Dim country" foreignKey="country_fk"/>
    <DimensionUsage name="Dim date" source="Dim date" foreignKey="date_fk"/>
    <DimensionUsage name="Dim product" source="Dim product" foreignKey="product_fk"/>
    <DimensionUsage name="Dim shop" source="Dim shop" foreignKey="shop_fk"/>
    <Measure name="Country fk" column="country_fk" aggregator="sum" formatString="&#x23;"/>
    <Measure name="Date fk" column="date_fk" aggregator="sum" formatString="&#x23;"/>
    <Measure name="Product fk" column="product_fk" aggregator="sum" formatString="&#x23;"/>
    <Measure name="Ser id" column="ser_id" aggregator="sum" formatString="&#x23;"/>
    <Measure name="Shop fk" column="shop_fk" aggregator="sum" formatString="&#x23;"/>
    <Measure name="Measure1" column="M1" aggregator="sum" formatString="&#x23;"/>
    <Measure name="Measure2" column="M2" aggregator="sum" formatString="&#x23;"/>
    <Measure name="Measure3" column="M3" aggregator="sum" formatString="&#x23;"/>
  </Cube>
</Schema>**strong text**

查询运行。但是这些值不正确。我在这里遗漏了什么吗?

这让我有点奇怪:

MEMBER [Dim shop.Shop id].[Shop count] AS
    Count([Dim shop.Shop id].Members, EXCLUDEEMPTY) 

它看起来像一个度量,为什么不将它添加到 [Measures] 层次结构中呢?

MEMBER [Measures].[Shop count] AS
    Count([Dim shop.Shop id].Members, EXCLUDEEMPTY) 

您可能需要为度量添加一些上下文:

MEMBER [Measures].[Shop count] AS
    Count(
      nonempty(
        [Dim shop.Shop id].Members
       ,{[~ROWS_Dim country].currentmember, [~ROWS_Dim shop].currentmember}) 
      )
    )

我不确定 mdx mondrian 将使用什么标准,但以下关键字 existing:

会更好
MEMBER [Measures].[Shop count] AS
    Count(
      nonempty(
        EXISTING [Dim shop.Shop id].Members
       ,{[~ROWS_Dim country].currentmember, [~ROWS_Dim shop].currentmember}) 
      )
    )

您应该尝试分层([DimShops].[商店 ID].members)

问题出在我的事实 table 上。显然 NonEmptyCrossJoin() 首先扫描事实 table 并排除没有事实 table 条目的维度条目(这不是我想要的。我想独立查询维度)

This 解释了使用 NonEmptyCrossJoin() 的风险

我改用了 FILTER(CROSSJOIN(,) AS S, NOT IsEmpty(S.Current))。