Когда у меня есть две ссылки на элементы с перекрестным синтаксисом &[Value], я получаю эту ошибку:
Запрос (3, 3) Функция ожидает выражения набора кортежей для аргумента 1. Было использовано строковое или числовое выражение.
Обратите внимание, что в The function
есть два пробела, как будто он пытается назвать одну из функций, у которой нет имени. Я могу воссоздать проблему с образцом базы данных "Adventure Works DW 2008R2".
Не работает:
SELECT
NON EMPTY
{
[Date].[Day of Month].&[1]
* [Sales Territory].[Sales Territory Country].&[Canada]
* [Measures].[Sales Amount]
}
ON COLUMNS,
NON EMPTY
{
[Product].[Product Name]
}
ON ROWS
FROM [Adventure Works]
Работает:
SELECT
NON EMPTY
{
[Date].[Day of Month].&[1]
* {([Sales Territory].[Sales Territory Country].&[Canada])}
* [Measures].[Sales Amount]
}
ON COLUMNS,
NON EMPTY
{
[Product].[Product Name]
}
ON ROWS
FROM [Adventure Works]
Также работает:
SELECT
NON EMPTY
{
{([Date].[Day of Month].&[1])}
* [Sales Territory].[Sales Territory Country].&[Canada]
* [Measures].[Sales Amount]
}
ON COLUMNS,
NON EMPTY
{
[Product].[Product Name]
}
ON ROWS
FROM [Adventure Works]
Также работает:
SELECT
NON EMPTY
{
[Date].[Day of Month].&[1]
* [Measures].[Sales Amount]
}
ON COLUMNS,
NON EMPTY
{
[Product].[Product Name]
}
ON ROWS
FROM [Adventure Works]
Также работает:
SELECT
NON EMPTY
{
[Sales Territory].[Sales Territory Country].&[Canada]
* [Measures].[Sales Amount]
}
ON COLUMNS,
NON EMPTY
{
[Product].[Product Name]
}
ON ROWS
FROM [Adventure Works]
Как он интерпретировал мое выражение, если не как набор кортежей? Я постоянно сталкиваюсь с подобными вещами, и это действительно сбивает с толку относительно того, что он пытается сделать с моими наборами кортежей, что он думает, что это строка или числовое выражение.