Nota:
El acceso a esta página requiere autorización. Puede intentar iniciar sesión o cambiar directorios.
El acceso a esta página requiere autorización. Puede intentar cambiar los directorios.
Si un conjunto con nombre solo es necesario para una sola consulta de expresiones multidimensionales (MDX), puede definir ese conjunto con nombre mediante la palabra clave WITH. Ya no existe un conjunto con nombre creado mediante la palabra clave WITH una vez finalizada la ejecución de la consulta.
Como se describe en este tema, la sintaxis de la palabra clave WITH es bastante flexible, incluso adaptando el uso de funciones para definir el conjunto con nombre.
Nota:
Para obtener más información sobre los conjuntos con nombre, vea Compilar conjuntos con nombre en MDX (MDX).
Sintaxis de la palabra clave WITH
Use la sintaxis siguiente para agregar la palabra clave WITH a una instrucción MDX SELECT:
[ WITH <SELECT WITH clause> [ , <SELECT WITH clause> ... ] ]
SELECT [ * | ( <SELECT query axis clause> [ , <SELECT query axis clause> ... ] ) ]
FROM <SELECT subcube clause>
[ <SELECT slicer axis clause> ]
[ <SELECT cell property list clause> ]
<SELECT WITH clause> ::=
( SET Set_Identifier AS 'Set_Expression')
En la sintaxis de la palabra clave WITH, el Set_Identifier parámetro contiene el alias del conjunto con nombre. El Set_Expression parámetro contiene la expresión de conjunto a la que hace referencia el alias de conjunto nombrado.
Ejemplo de palabra clave WITH
La siguiente consulta MDX examina las ventas unitarias de los diversos vinos Chardonnay y Chablis en FoodMart 2000, la base de datos de ejemplo para Microsoft SQL Server 2000 Analysis Services. Esta consulta, aunque es bastante sencilla en términos del conjunto de resultados, resulta larga y engorrosa a la hora de mantenerla.
SELECT
{[Product].[All Products].[Drink].[Alcoholic Beverages].[Beer and Wine].[Wine].[Good].[Good Chardonnay], [Product].[All Products].[Drink].[Alcoholic Beverages].[Beer and Wine].[Wine].[Pearl].[Pearl Chardonnay], [Product].[All Products].[Drink].[Alcoholic Beverages].[Beer and Wine].[Wine].[Portsmouth].[Portsmouth Chardonnay], [Product].[All Products].[Drink].[Alcoholic Beverages].[Beer and Wine].[Wine].[Top Measure].[Top Measure Chardonnay], [Product].[All Products].[Drink].[Alcoholic Beverages].[Beer and Wine].[Wine].[Walrus].[Walrus Chardonnay], [Product].[All Products].[Drink].[Alcoholic Beverages].[Beer and Wine].[Wine].[Good].[Good Chablis Wine], [Product].[All Products].[Drink].[Alcoholic Beverages].[Beer and Wine].[Wine].[Pearl].[Pearl Chablis Wine], [Product].[All Products].[Drink].[Alcoholic Beverages].[Beer and Wine].[Wine].[Portsmouth].[Portsmouth Chablis Wine], [Product].[All Products].[Drink].[Alcoholic Beverages].[Beer and Wine].[Wine].[Top Measure].[Top Measure Chablis Wine], [Product].[All Products].[Drink].[Alcoholic Beverages].[Beer and Wine].[Wine].[Walrus].[Walrus Chablis Wine]} ON COLUMNS,
{Measures.[Unit Sales]} ON ROWS
FROM Sales
Para facilitar el mantenimiento de la consulta MDX anterior, puede crear un conjunto con nombre para la consulta mediante la palabra clave WITH. En el código siguiente se muestra cómo usar la palabra clave WITH para crear un conjunto con nombre, [ChardonnayChablis]y cómo el conjunto con nombre hace que la instrucción SELECT sea más corta y fácil de mantener.
WITH SET [ChardonnayChablis] AS
{[Product].[All Products].[Drink].[Alcoholic Beverages].[Beer and Wine].[Wine].[Good].[Good Chardonnay],
[Product].[All Products].[Drink].[Alcoholic Beverages].[Beer and Wine].[Wine].[Pearl].[Pearl Chardonnay],
[Product].[All Products].[Drink].[Alcoholic Beverages].[Beer and Wine].[Wine].[Portsmouth].[Portsmouth Chardonnay],
[Product].[All Products].[Drink].[Alcoholic Beverages].[Beer and Wine].[Wine].[Top Measure].[Top Measure Chardonnay],
[Product].[All Products].[Drink].[Alcoholic Beverages].[Beer and Wine].[Wine].[Walrus].[Walrus Chardonnay],
[Product].[All Products].[Drink].[Alcoholic Beverages].[Beer and Wine].[Wine].[Good].[Good Chablis Wine],
[Product].[All Products].[Drink].[Alcoholic Beverages].[Beer and Wine].[Wine].[Pearl].[Pearl Chablis Wine],
[Product].[All Products].[Drink].[Alcoholic Beverages].[Beer and Wine].[Wine].[Portsmouth].[Portsmouth Chablis Wine],
[Product].[All Products].[Drink].[Alcoholic Beverages].[Beer and Wine].[Wine].[Top Measure].[Top Measure Chablis Wine],
[Product].[All Products].[Drink].[Alcoholic Beverages].[Beer and Wine].[Wine].[Walrus].[Walrus Chablis Wine]}
SELECT
[ChardonnayChablis] ON COLUMNS,
{Measures.[Unit Sales]} ON ROWS
FROM Sales
Uso de funciones junto con la palabra clave WITH
Aunque puede definir explícitamente cada miembro de un conjunto con nombre, este enfoque puede generar una instrucción larga. Para facilitar la creación y el mantenimiento de un conjunto con nombre, puede usar funciones MDX para definir los miembros.
Por ejemplo, el siguiente ejemplo de consulta MDX usa las funciones MDX Filter, CurrentMember y Name MDX y la función InStr VBA para crear el [ChardonnayChablis] conjunto con nombre. Esta versión del conjunto denominado [ChardonnayChablis] es igual a la versión definida explícitamente que se mostró anteriormente en este tema.
WITH SET [ChardonnayChablis] AS
'Filter([Product].Members, (InStr(1, [Product].CurrentMember.Name, "chardonnay") <> 0) OR (InStr(1, [Product].CurrentMember.Name, "chablis") <> 0))'
SELECT
[ChardonnayChablis] ON COLUMNS,
{Measures.[Unit Sales]} ON ROWS
FROM Sales
Véase también
Instrucción SELECT (MDX)
Creación de conjuntos con nombre Session-Scoped (MDX)