Una de las debilidades de Analysis Services, en mi opinión, es la compatibilidad con la creación de agrupaciones personalizadas de miembros. Creo que el 90 % de todos los miembros calculados sobre dimensiones sin medidas tienen que hacer exactamente eso, es decir, simplemente hacer un AGREGADO o una SUMA en un conjunto de miembros, y sí, los miembros calculados devolverán los valores correctos, pero mi queja es otra. Es que entonces no tiene idea de qué miembros se han agregado dentro de este miembro calculado, y eso funciona como VISUALTOTALS, NONEMPTYCROSSJOIN, etc. que le gustaría ser «consciente del grupo», por supuesto que no. Algunos ejemplos necesarios, creo…

Considere la siguiente consulta en Foodmart 2000:

CON MIEMBRO [Customers].[All Customers].[USA].DEMO COMO ‘AGREGADO({[Customers].[All Customers].[USA].[CA], [Customers].[All Customers].[USA].[OR]})’
SELECCIONE MEDIDAS.MIEMBROS EN 0,
{[Customers].[All Customers].[USA].NIÑOS, [Customers].[All Customers].[USA].DEMO} EN 1
VENTAS

¿No sería bueno entonces si VISUALTOTALS «supiera» qué hay en el conjunto y esta consulta

CON MIEMBRO [Customers].[All Customers].[USA].DEMO COMO ‘AGREGADO({[Customers].[All Customers].[USA].[CA], [Customers].[All Customers].[USA].[OR]})’
SELECCIONE MEDIDAS.MIEMBROS EN 0,
TOTALVISUAL({[Customers].[All Customers].[USA],{[Customers].[All Customers].[USA].[CA], [Customers].[All Customers].[USA].[OR]} }, «* DEMOSTRACIÓN»)
1
VENTAS

devolvió los mismos resultados que esta consulta?

CON MIEMBRO [Customers].[All Customers].[USA].DEMO COMO ‘AGREGADO({[Customers].[All Customers].[USA].[CA], [Customers].[All Customers].[USA].[OR]})’
SELECCIONE MEDIDAS.MIEMBROS EN 0,
TOTALVISUAL({[Customers].[All Customers].[USA],[Customers].[All Customers].[USA].DEMO }, «*DEMO»)
1
VENTAS

¿Y que cuando hizo NONEMPTYCROSSJOIN en su miembro calculado, arrojaría los mismos resultados que cuando hizo NONEMPTYCROSSJOIN en el conjunto que se agregó al miembro calculado? ¿Y tal vez también podría explorar el miembro calculado para ver los miembros que contiene?

Por supuesto, eso no es posible en este momento, porque un miembro calculado puede contener cualquier tipo de cálculo, por lo que AS simplemente no puede hacer suposiciones. Pero si hubiera un tipo especial de miembro de grupo calculado, que simplemente tomara un conjunto de miembros como su definición y siempre devolviera un AGREGADO de ese conjunto, seguramente AS podría hacer esas suposiciones.

Solo un pensamiento…