MDX
:这些查询有什么不同,我正在使用冒险作品数据库。
SELECT
{[Measures].[Internet Sales Amount]} ON COLUMNS,
NON EMPTY ([Product].[Category].[Category] ,
[Date].[Calendar Year].[Calendar Year])ON ROWS
FROM [Adventure Works]
GO
SELECT
{[Measures].[Internet Sales Amount]} ON COLUMNS,
NON EMPTY ([Product].[Category].[Category] *
[Date].[Calendar Year].[Calendar Year])ON ROWS
FROM [Adventure Works]
答案 0 :(得分:1)
这两个脚本是相同的。
这实际上是在行上放置了一组元组 - 你已经使用大括号(...)
明确地定义了元组
SELECT
{[Measures].[Internet Sales Amount]} ON COLUMNS
,NON EMPTY
( //<<start of tuple
[Product].[Category].[Category]
,[Date].[Calendar Year].[Calendar Year]
) ON ROWS
FROM [Adventure Works];
第二个脚本是通过星号运算符*
进行的交叉连接:
SELECT
{[Measures].[Internet Sales Amount]} ON COLUMNS
,NON EMPTY
[Product].[Category].[Category] * [Date].[Calendar Year].[Calendar Year] ON ROWS
FROM [Adventure Works];
当您操作crossjoin
时,它会返回一组元组 - 因此您最终会得到相同的单元格集。
您可以编写交叉连接而不是使用星号 - 尽管星号是现代mdx脚本中使用最多的符号:
SELECT
{[Measures].[Internet Sales Amount]} ON COLUMNS
,NON EMPTY
CrossJoin
(
[Product].[Category].[Category]
,[Date].[Calendar Year].[Calendar Year]
) ON ROWS
FROM [Adventure Works];