Smart View 用户所需的信息不在多维数据集中,可以通过穿透钻取报表对外部源数据进行定制访问。
通常,如果在数据仓库和其他源数据系统中保留详细粒度的数据,外部数据量可能太大,不适用于分析。要在 Essbase 多维数据集中填充适合分析的最佳数据量,常用做法是聚合源数据(例如,将每日事务处理值聚合到每周或每月总计),然后将此聚合数据加载到 Essbase 多维数据集中。
以后在 Essbase 中分析数据时,如果 Smart View 用户发现值得调查的异常值,可通过穿透钻取快速查看基础源数据以查找原因。例如,如果八月数据意外与七月数据不同,用户可以穿透钻取到源系统以查找可能是哪些记录造成的。
要向分析 Smart View 用户提供有关构成多维数据集中一个或多个数据值的内容的其他信息,数据库管理者可以实施穿透钻取报表以便更深入地了解源数据,然后再将其汇总并加载到 Essbase 中。
您可以通过穿透钻取报表在 Essbase 与外部源系统之间构建数据交换接口。
假定一个关系表 SB_DT,并选择了所有记录。SQL 查询如下:
SELECT * FROM SB_DT
下图中,由于长度限制,截断了查询结果(SQL Developer 中),因为表中有数千条记录:
假定同一个表,但减少了选择的记录。例如,如果将 SQL 选择缩小到命名列,对度量进行聚合,并应用筛选器(WHERE 子句),
select DIMENSION_PRODUCT, DIMENSION_MARKET, YEAR_PARENT, DIMENSION_SCENARIO, sum(SALES) as SALES, sum(COGS) as COGS from SB_DT where DIMENSION_SCENARIO ='Actual' AND DIMENSION_MARKET ='California' AND YEAR_PARENT ='Qtr4' group by DIMENSION_PRODUCT, DIMENSION_MARKET, YEAR_PARENT, DIMENSION_SCENARIO
则将聚合并筛选查询结果:
您可以使用数据源、数据加载和穿透钻取报表,在 Essbase 中利用 RDBMS 查询的强大功能。使用穿透钻取报表,可以在 Smart View 工作表中直接通过 Essbase 查询对外部数据源进行筛选访问。
本主题解释了与 Essbase 穿透钻取相关的术语的含义。
穿透钻取(动词)
穿透钻取是指从 Smart View 工作表中的一个或多个 Essbase 单元格交叉点访问外部数据。穿透钻取操作可提供 Essbase 多维数据集中未包含的其他信息。当 Essbase 包含聚合(“汇总”)值以及外部源系统具有可供使用的粒度更细的数据时,会增加穿透钻取的需求。
如果在穿透钻取时执行查询,结果将显示在打开的新工作表中,这就是穿透钻取报表。该报表包含从外部源数据拉取的信息。
如果在穿透钻取时启动 URL,将在 Web 浏览器中打开它。可以向 URL 传递参数,以在网站上执行定制搜索。
穿透钻取报表
穿透钻取报表是穿透钻取操作的结果,这是从 Smart View 网格执行的操作,目的是穿透钻取 Essbase 外部的源系统中的其他数据。
穿透钻取报表定义
如果您是数据库管理者或更高级别的角色,则可以通过穿透钻取报表定义来定义您的用户对外部信息的访问权限。可在 Essbase Web 界面或 REST API 中创建穿透钻取报表定义。它们与您的多维数据集关联。定义时,将指定以下项:
列映射。指定哪些外部列要显示在报表中,以及要提供的分层(层代)访问深度(例如,您要显示来自外部源的每日信息、每月信息,还是每季度信息?)
可钻取区域。指定可从多维数据集的哪些单元格交叉点访问包含其他外部数据的穿透钻取报表(或 URL)。在后面的示例中,Smart View 工作表的 POV 中的可钻取区域使用单元格样式以蓝色标识。可使用 Essbase 中可用的任一成员集函数指定可钻取区域。在后面的示例中,可钻取区域为 Sample Basic 上的 @DESCENDANTS("Measures")。
运行时参数的映射(如果在基础数据源查询中实施了参数化查询(可选))。
穿透钻取报表定义通常依赖于 Essbase 中的预定义连接和数据源(除非您要定义对上载到 Essbase 的文件的访问权限)。连接存储访问外部源所用的验证详细信息。通过基于连接定义的一个或多个数据源,您可以指定用于从外部源提取数据的初始查询(例如,从某个特定表选择所有内容)。开始时,在数据源中指定的查询可以提取任意所需大小的一组数据。以后,在创建或编辑穿透钻取报表定义时,可以缩小要提供的数据访问范围。
以数据库管理者身份,使用以下工作流为您的多维数据集设计和测试穿透钻取。
准备数据访问
在多维数据集上创建 穿透钻取报表定义
准备 Smart View
在 Smart View 中从不同的单元格交叉点进行穿透钻取
检查穿透钻取报表输出和平台日志
此工作流以及本简介的其余部分重点介绍设计和测试对 RDBMS 中外部源数据进行穿透钻取访问所需了解的内容。如果您对穿透钻取 URL 实施更有兴趣,请参见穿透钻取到 URL。
要了解穿透钻取设计和使用的不同访问要求,请参见访问穿透钻取报表。
在此示例中,假设 Essbase 中的 Sample Basic 多维数据集中,Qtr1-Qtr4 是时间维的最低级别。
大纲层次中没有月份,但在外部源系统中提供了每月数据,这些数据位于名为 DIMENSION_YEAR 的表列中:
当 Smart View 用户对 Qtr1 的 Sales 值的单元格交叉点进行穿透钻取时:
Essbase 生成的穿透钻取报表如下
穿透钻取报表显示来自源数据库的有关 Qtr1 的 Sales 的其他信息。请注意,Jan、Feb 和 Mar 值相加得到 Qtr1 的值:678+645+675=1998。
Essbase 在内部用于构建上述穿透钻取报表的查询如下:
SELECT "DIMENSION_PRODUCT", "DIMENSION_MARKET", "DIMENSION_YEAR", "DIMENSION_SCENARIO", "SALES", "COGS", "YEAR_PARENT" FROM <Query defined in Datasource> WHERE "YEAR_PARENT" = 'Qtr1' AND "DIMENSION_PRODUCT" = '100-10' AND "DIMENSION_MARKET" = 'New York' AND "DIMENSION_SCENARIO" = 'Actual'
管理员可以从平台日志访问构建每个穿透钻取报表时使用的确切查询。
如果您是数据库管理者或更高级别的角色,则可以通过穿透钻取报表定义来定义您的用户对外部信息的访问权限。
注:
请勿重命名穿透钻取报表定义。重命名的穿透钻取报表定义可能无法进行编辑,并且可能无法按预期工作。为了启用在穿透钻取工作方式中生成的穿透钻取报表,数据库管理者创建了与 Sample Basic 关联的穿透钻取报表定义。该穿透钻取报表引用了一个预定义的数据源,该数据源使用查询从 SB_DT(Essbase 穿透钻取简介中提到的假想源系统表)拉取外部数据。
在穿透钻取报表定义中,数据库管理者指定了以下列映射:
外部列 | 包含在报表中 | Essbase 维 | 层代/级别筛选器 |
---|---|---|---|
DIMENSION_PRODUCT | Y | Product | Product SKU [Generation] |
DIMENSION_MARKET | Y | Market | State [Generation] |
DIMENSION_YEAR | Y | Year | 无 |
DIMENSION_SCENARIO | Y | Scenario | Level0 [Level] |
SALES | Y | 无 | -- |
COGS | Y | 无 | -- |
YEAR_PARENT | Y | Year | Quarter [Generation] |
列映射定义哪些外部源列应包含在报表中,这些列映射到哪些 Essbase 维,以及(可选)层代/级别筛选条件(指示要提供的访问深度)。
在上面显示的映射模板中,数据库管理者:
已将外部 DIMENSION_PRODUCT 列映射到 Essbase Product 维中名为 Product SKU 的层代。这种类型的列映射称为层代映射。
已将外部 DIMENSION_MARKET 列映射到 Essbase Market 维中名为 State 的层代(这是另一个层代映射示例)。
已将外部 DIMENSION_YEAR 列映射到 Year 维,没有进一步应用筛选器。这种类型的列映射称为维映射。
已将外部 DIMENSION_SCENARIO 列映射到 Essbase Scenario 维的最低级别(0 级)。这种类型的列映射称为 0 级映射。
未将 SALES 列和 COGS 列映射到任何项,但选择了这些列以将其包含在报表中。通常不需要将列映射到 Essbase 账户维。
已将外部 YEAR_PARENT 列映射到 Year 维中名为 Quarter 的层代。
列映射选项
由于 Essbase 生成以用于从数据源拉取数据的查询高度依赖定义的列映射,因此了解不同的列映射方法以及每种方法适用于哪些情况很有帮助。列映射类型如下:
维映射
层代映射
0 级映射
维映射
使用维映射,可以直接将源数据列映射到 Essbase 多维数据集中的维名称。这种类型的映射最适用于以下情况:源数据列包含多维数据集的对应维中表示的所有数据层。
例如,如果源数据列 MONTH 包含维具有的所有相同层代/级别混合内容,如下所示:
接下来,可以将 MONTH 列映射到 Essbase Year 维,没有进一步应用筛选器:
外部列 | 包含在报表中 | Essbase 维 | 层代/级别筛选器 |
---|---|---|---|
MONTH | Y | Year | 无 |
对 MONTH 使用维映射(如上所示)时,没有为 MONTH 列预定义筛选条件(SQL 查询的 WHERE 子句):
SELECT "MONTH" FROM <Query defined in Datasource> WHERE "MONTH" = '<Grid context>'
针对 MONTH 的穿透钻取结果将返回当前 Smart View 单元格交叉点。
请参见穿透钻取用例示例,了解有关维映射工作方式的更多信息。
层代映射
使用层代映射,可以将源数据列映射到 Essbase 维中的命名层代。这种类型的映射适用于以下情况:源数据列仅包含多维数据集中某个维的特定层代中表示的数据层。例如,如果源数据列 MONTH 仅包含月份,Year 维具有位于层代 3 的月份,
接下来,最佳做法是将源列映射到 Year 维的层代 3 (Months):
外部列 | 包含在报表中 | Essbase 维 | 层代/级别筛选器 |
---|---|---|---|
MONTH | Y | Year | Months [Generation] |
对 MONTH 使用层代映射(如上所示)时,将为 MONTH 列预定义查询筛选条件:
SELECT "MONTH" FROM <Query defined in Datasource> WHERE "MONTH" = '<Generation filter>'
针对 MONTH 的穿透钻取结果将返回深入到 Year 维的 Months 层代的值。将不会返回低于 Months 的任何级别的数据(如果存在)。
层代映射不适合非对称(不规则)层次。层代映射不影响具有不规则层次的维中的穿透钻取查询,除非对直接祖先行中的成员执行了穿透钻取并且穿透钻取到定义了列映射的层代。为了避免出现意外结果,Oracle 建议在对非对称层次进行穿透钻取时使用 0 级映射,而非层代映射。
请参见穿透钻取用例示例,了解有关层代映射工作方式的更多信息。
0 级映射
使用 0 级映射时,Essbase 将层次中低于单元格交叉点的所有叶级别成员(运行时在当前 Smart View 网格上下文中选择的任何成员)添加到筛选条件中。
使用非对称(不规则)层次时,适合使用 0 级映射。在不规则层次中,相同级别 (L) 成员在大纲中的层代 (G) 深度并不完全相同。
常见的不规则层次示例是员工组织结构。
如果在 100-10 (Cola) 下面添加了一些子产品,则 Sample Basic 的 Essbase 多维数据集大纲的 Product 维将是不规则层次。
如果数据库管理者将 PRODUCT 源列映射到 Product 维的 0 级,如下所示:
外部列 | 包含在报表中 | Essbase 维 | 层代/级别筛选器 |
---|---|---|---|
PRODUCT | Y | Product | Level0 [Level] |
接下来,将为 PRODUCT 列预定义查询筛选条件:
SELECT "PRODUCT" FROM <Query defined in Datasource> WHERE "PRODUCT" = <Level0> below <Grid context>
针对 PRODUCT 的穿透钻取结果将返回在当前 Smart View 单元格交叉点中选择的 Product 成员下面的所有 0 级成员。
请参见穿透钻取用例示例,了解有关 0 级映射工作方式的更多信息。
对于此示例用例,我们将检查以下因素,在为 Smart View 用户设计穿透钻取报表访问权限时需要考虑这些因素:
用于分析的 Essbase 多维数据集
用于穿透钻取的外部源系统
包含数据库管理者定义的列映射的穿透钻取报表定义
来自 Smart View 的穿透钻取报表结果
Essbase 多维数据集
在此示例中,基础是一个与 Essbase 演示多维数据集 Sample Basic 相似的多维数据集,但对于多维数据集中存在的时间维,只有季度级别数据(删除了月份)。假定 Year 维的最低级别(0 级)成员为 Qtr1-Qtr4:
虽然此大纲层次中缺少月份,但可通过向源系统(假定为 Oracle 数据库)穿透钻取,并从名为 DIMENSION_YEAR 的列访问信息,在外部获得每月数据:
对于其余维,假定它们与 Essbase 演示多维数据集 Sample Basic(在“文件”目录的 "gallery" 部分中提供)中的维相同。按顺序快速了解这些内容:
Measures 维使用采用 Essbase 计算公式的动态计算跟踪账户的关键绩效指标。
Product 维跟踪活动清单,深度向下延伸两个层代,即名为 Category 的层代 2(填充了 100 [别名为 Colas]、200、300、400 和 Diet)和名为 Product SKU 的层代 3/0 级(填充了 100-10 [别名为 Cola]、100-20 等)。
Market 维提供地理分隔,维名称下有两个额外的层代。层代 2 是区域(East、West 等),层代 3 是州。
Scenario 维向多维数据集添加财务报告分析,具有两个存储成员和两个动态计算成员:
外部源系统
在此示例中,假定源系统为 Oracle 数据库。Essbase 中的预定义数据源包括从 Oracle 数据库中的表拉取信息的 SQL 查询。
作为数据库管理者,我们的任务是基于此数据源设计穿透钻取报表定义,以便为 Smart View 用户提供正确访问通过数据源拉取的源系统数据的权限。
数据源中的查询可以像下面这样简单
SELECT * FROM TABLENAME
也可以对其进行细化,以拉取外部数据的任何聚合或分类,将其用作基础。
从我们在 Oracle 数据库中的假想表选择的内容包含外部列,例如简介中展示的列。我们设计穿透钻取报表定义时,将其中一些外部列映射到 Essbase 维。
列映射定义
此示例中的列映射对 Product 利用维映射,对 Year 和 Scenario 利用层代映射,对 Market 利用 0 级映射。
外部列 | 包含在报表中 | Essbase 维 | 层代/级别筛选器 |
---|---|---|---|
DIMENSION_PRODUCT | Y | Product | 无 |
DIMENSION_MARKET | Y | Market | Level0 [Level] |
YEAR_PARENT | Y | Year | Quarter [Generation] |
DIMENSION_SCENARIO | Y | Scenario | Scen [Generation] |
SALES | Y | 无 | -- |
COGS | Y | 无 | -- |
MARKETING | Y | 无 | -- |
PAYROLL | Y | 无 | -- |
MISC | Y | 无 | -- |
穿透钻取报表示例(按列映射类型)
以下穿透钻取报表示例展示了数据库管理员在穿透钻取报表定义中指定的每个列映射类型对应的查询结果。
维映射示例 1
对 Product 使用维映射,没有应用分层筛选器,
外部列 | 包含在报表中 | Essbase 维 | 层代/级别筛选器 |
---|---|---|---|
DIMENSION_PRODUCT | Y | Product | 无 |
从单元格交叉点执行的穿透钻取不会绑定到任何特定层代或级别。
因此,从 (Year, Sales, West, Actual, Cola) 进行穿透钻取:
返回按 Product 的当前网格上下文筛选的穿透钻取报表,得到的是与 100-10(100-10 是与别名 Cola 关联的 Product SKU)相关的报表。从源系统中的 DIMENSION_PRODUCT 列拉取的所有值将是 DIMENSION_PRODUCT = 100-10 的记录。
要在测试穿透钻取报表时对其进行验证,请检查报表中的度量总和与对其执行了穿透钻取的单元格交叉点是否一致。在上述示例中,该穿透钻取报表已验证,因为对其进行钻取的单元格与穿透钻取报表中的映射列的总和值 (14862) 一致。
Essbase 用于构建上述穿透钻取报表的查询如下:
SELECT "DIMENSION_PRODUCT", "DIMENSION_MARKET", "YEAR_PARENT", "DIMENSION_SCENARIO", "SALES", "COGS", "MARKETING", "PAYROLL", "MISC"
FROM <Query defined in Datasource>
WHERE (
"YEAR_PARENT" = 'Qtr3' OR
"YEAR_PARENT" = 'Qtr4' OR
"YEAR_PARENT" = 'Qtr1' OR
"YEAR_PARENT" = 'Qtr2')
AND
"DIMENSION_PRODUCT" = '100-10'
AND (
"DIMENSION_MARKET" = 'Oregon' OR
"DIMENSION_MARKET" = 'California' OR
"DIMENSION_MARKET" = 'Washington' OR
"DIMENSION_MARKET" = 'Utah' OR
"DIMENSION_MARKET" = 'Nevada')
AND
"DIMENSION_SCENARIO" = 'Actual'
维映射示例 2
接着上个示例,下面来看在更高级别对 Product 进行穿透钻取时会发生什么情况。
从 (Year, Sales, West, Actual, Colas) 进行穿透钻取:
返回按 Product 的当前网格上下文筛选的穿透钻取报表,现在得到的是与 100(100 是与别名 Colas 关联的 Product Category)相关的报表。从源系统中的 DIMENSION_PRODUCT 列拉取的所有值将是 DIMENSION_PRODUCT = 100 的记录。
该穿透钻取报表已验证,因为对其进行钻取的单元格与穿透钻取报表中的映射列的总和值 (23806) 一致。
Essbase 用于构建上述穿透钻取报表的查询如下:
SELECT "DIMENSION_PRODUCT", "DIMENSION_MARKET", "YEAR_PARENT", "DIMENSION_SCENARIO", "SALES", "COGS", "MARKETING", "PAYROLL", "MISC"
FROM <Query defined in Datasource>
WHERE (
"YEAR_PARENT" = 'Qtr3' OR
"YEAR_PARENT" = 'Qtr4' OR
"YEAR_PARENT" = 'Qtr1' OR
"YEAR_PARENT" = 'Qtr2')
AND
"DIMENSION_PRODUCT" = '100'
AND (
"DIMENSION_MARKET" = 'Oregon' OR
"DIMENSION_MARKET" = 'California' OR
"DIMENSION_MARKET" = 'Washington' OR
"DIMENSION_MARKET" = 'Utah' OR
"DIMENSION_MARKET" = 'Nevada')
AND
"DIMENSION_SCENARIO" = 'Actual'
层代映射示例 1
对 Year 使用层代映射,并基于名为 Quarter 的层代应用筛选器,
外部列 | 包含在报表中 | Essbase 维 | 层代/级别筛选器 |
---|---|---|---|
YEAR_PARENT | Y | Year | Quarter [Generation] |
从单元格交叉点执行的穿透钻取将绑定到 Year 的指定层代。
从 (Qtr2, Sales, Market, Actual, Cola) 进行穿透钻取:
返回按 Year 的映射层代上下文(即 Quarter)筛选的穿透钻取报表。由于 Qtr2 在所选网格上下文中,因此从源系统中的 YEAR_PARENT 列拉取的所有值将为 YEAR_PARENT = Qtr2 的记录。
该穿透钻取报表已验证,因为对其进行钻取的单元格与穿透钻取报表中的映射列的总和值 (16048) 一致。
Essbase 用于构建上述穿透钻取报表的查询如下:
SELECT "DIMENSION_PRODUCT", "DIMENSION_MARKET", "YEAR_PARENT", "DIMENSION_SCENARIO", "SALES", "COGS", "MARKETING", "PAYROLL", "MISC"
FROM <Query defined in Datasource>
WHERE
"YEAR_PARENT" = 'Qtr2'
AND
"DIMENSION_PRODUCT" = '100-10'
AND (
"DIMENSION_MARKET" = 'Oregon' OR
"DIMENSION_MARKET" = 'New York' OR
"DIMENSION_MARKET" = 'Oklahoma' OR
"DIMENSION_MARKET" = 'California' OR
"DIMENSION_MARKET" = 'Florida' OR
"DIMENSION_MARKET" = 'Washington' OR
"DIMENSION_MARKET" = 'Utah' OR
"DIMENSION_MARKET" = 'Iowa' OR
"DIMENSION_MARKET" = 'New Mexico' OR
"DIMENSION_MARKET" = 'Massachusetts' OR
"DIMENSION_MARKET" = 'Texas' OR
"DIMENSION_MARKET" = 'Illinois' OR
"DIMENSION_MARKET" = 'Colorado' OR
"DIMENSION_MARKET" = 'Connecticut' OR
"DIMENSION_MARKET" = 'New Hampshire' OR
"DIMENSION_MARKET" = 'Missouri' OR
"DIMENSION_MARKET" = 'Louisiana' OR
"DIMENSION_MARKET" = 'Ohio' OR
"DIMENSION_MARKET" = 'Wisconsin' OR
"DIMENSION_MARKET" = 'Nevada')
AND
"DIMENSION_SCENARIO" = 'Actual'
层代映射示例 2
接着上个示例,下面来看在更高级别对 Year 维进行穿透钻取时会发生什么情况。
从 (Year, Sales, Market, Actual, Cola) 进行穿透钻取:
返回按 Year 的映射 Quarter 层代筛选的穿透钻取报表。从源系统中的 YEAR_PARENT 列拉取的值将是 Qtr1、Qtr2、Qtr3 和 Qtr4。
该穿透钻取报表已验证,因为对其进行钻取的单元格与穿透钻取报表中的映射列的总和值 (62824) 一致。
Essbase 用于构建上述穿透钻取报表的查询如下:
SELECT "DIMENSION_PRODUCT", "DIMENSION_MARKET", "YEAR_PARENT", "DIMENSION_SCENARIO", "SALES", "COGS", "MARKETING", "PAYROLL", "MISC"
FROM <Query defined in Datasource>
WHERE (
"YEAR_PARENT" = 'Qtr3' OR
"YEAR_PARENT" = 'Qtr4' OR
"YEAR_PARENT" = 'Qtr1' OR
"YEAR_PARENT" = 'Qtr2')
AND
"DIMENSION_PRODUCT" = '100-10'
AND (
"DIMENSION_MARKET" = 'Oregon' OR
"DIMENSION_MARKET" = 'New York' OR
"DIMENSION_MARKET" = 'Oklahoma' OR
"DIMENSION_MARKET" = 'California' OR
"DIMENSION_MARKET" = 'Florida' OR
"DIMENSION_MARKET" = 'Washington' OR
"DIMENSION_MARKET" = 'Utah' OR
"DIMENSION_MARKET" = 'Iowa' OR
"DIMENSION_MARKET" = 'New Mexico' OR
"DIMENSION_MARKET" = 'Massachusetts' OR
"DIMENSION_MARKET" = 'Texas' OR
"DIMENSION_MARKET" = 'Illinois' OR
"DIMENSION_MARKET" = 'Colorado' OR
"DIMENSION_MARKET" = 'Connecticut' OR
"DIMENSION_MARKET" = 'New Hampshire' OR
"DIMENSION_MARKET" = 'Missouri' OR
"DIMENSION_MARKET" = 'Louisiana' OR
"DIMENSION_MARKET" = 'Ohio' OR
"DIMENSION_MARKET" = 'Wisconsin' OR
"DIMENSION_MARKET" = 'Nevada')
AND
"DIMENSION_SCENARIO" = 'Actual'
0 级映射示例
对 Market 使用 0 级映射,并基于所有 0 级(叶)成员应用筛选器,
外部列 | 包含在报表中 | Essbase 维 | 层代/级别筛选器 |
---|---|---|---|
DIMENSION_MARKET | Y | Market | Level0 [Level] |
从单元格交叉点执行的穿透钻取将返回 Market 的所有最低级别成员。
从 (Year, Sales, Market, Actual, Cola) 进行穿透钻取:
返回包含 Market 维的最低级别成员的穿透钻取报表,得到的是与各州相关的报表。从源系统中的 DIMENSION_MARKET 列拉取的所有值将是包含各州的记录。
该穿透钻取报表已验证,因为对其进行钻取的单元格与穿透钻取报表中的映射列的总和值 (62824) 一致。
Essbase 用于构建上述穿透钻取报表的查询如下:
SELECT "DIMENSION_PRODUCT", "DIMENSION_MARKET", "YEAR_PARENT", "DIMENSION_SCENARIO", "SALES", "COGS", "MARKETING", "PAYROLL", "MISC"
FROM <Query defined in Datasource>
WHERE (
"YEAR_PARENT" = 'Qtr3' OR
"YEAR_PARENT" = 'Qtr4' OR
"YEAR_PARENT" = 'Qtr1' OR
"YEAR_PARENT" = 'Qtr2')
AND
"DIMENSION_PRODUCT" = '100-10'
AND (
"DIMENSION_MARKET" = 'Oregon' OR
"DIMENSION_MARKET" = 'New York' OR
"DIMENSION_MARKET" = 'Oklahoma' OR
"DIMENSION_MARKET" = 'California' OR
"DIMENSION_MARKET" = 'Florida' OR
"DIMENSION_MARKET" = 'Washington' OR
"DIMENSION_MARKET" = 'Utah' OR
"DIMENSION_MARKET" = 'Iowa' OR
"DIMENSION_MARKET" = 'New Mexico' OR
"DIMENSION_MARKET" = 'Massachusetts' OR
"DIMENSION_MARKET" = 'Texas' OR
"DIMENSION_MARKET" = 'Illinois' OR
"DIMENSION_MARKET" = 'Colorado' OR
"DIMENSION_MARKET" = 'Connecticut' OR
"DIMENSION_MARKET" = 'New Hampshire' OR
"DIMENSION_MARKET" = 'Missouri' OR
"DIMENSION_MARKET" = 'Louisiana' OR
"DIMENSION_MARKET" = 'Ohio' OR
"DIMENSION_MARKET" = 'Wisconsin' OR
"DIMENSION_MARKET" = 'Nevada')
AND
"DIMENSION_SCENARIO" = 'Actual'