Linguagem MDX 1 MULTIDIMENTIONAL EXPRESSIONS Rudiney Barbosa rlbcin
Linguagem MDX 1 MULTIDIMENTIONAL EXPRESSIONS Rudiney Barbosa - rlb@cin. ufpe. br 03/05/2010
Linguagem MDX Introdução 2 Microsoft, década de 90. Padrão para criação de relatórios Business Intelligence --> gestão de negócio Rudiney Barbosa - rlb@cin. ufpe. br 03/05/2010
Linguagem MDX Introdução 3 Rudiney Barbosa - rlb@cin. ufpe. br 03/05/2010
Linguagem MDX x SQL 4 MDX surgiu através de SQL Sintaxe: SELECT <mdx_expression> ON COLUMNS <mdx_expression> ON ROWS <mdx_expression> ON PAGES FROM <nome_cubo> WHERE <slicer_expression> Rudiney Barbosa - rlb@cin. ufpe. br 03/05/2010
Linguagem MDX x SQL 5 Ambas possuem funções para cálculos. Diferentes fontes de consulta. MDX não defini dados. MDX navega em hierarquia. Rudiney Barbosa - rlb@cin. ufpe. br 03/05/2010
Linguagem MDX Conceitos necessários 6 Cubo [Dimensões]+ Dimensão [Membros]+ [Hieraquia] Hierarquia [Nível]+ Nível [Membros] + Membros [Filhos] + Rudiney Barbosa - rlb@cin. ufpe. br 03/05/2010
Linguagem MDX Conceitos necessários 7 Navegar no cubo: Dimensao. <Sintaxe Member> = Membro. [nome do filho | função] Navegar em uma hierarquia Dimensao. HIERARQUIA. [ Nivel. <Sintaxe Member> | <Sintaxe Member> ] Cuidado com abreviações Ano 2010 e 2011 Tempo. [Hierarquia Tempo]. Ano. Semestre. 1 Semestre 1 de qual ano? Rudiney Barbosa - rlb@cin. ufpe. br 03/05/2010
Linguagem MDX 8 Colchetes - [ ] Espaços em branco Números Caracteres Selecionar um única célula Relacionar membros de todas as dimensões( [Produto]. [Milho], Tempo. Maio, [Loja]. [Recife] ) Rudiney Barbosa - rlb@cin. ufpe. br 03/05/2010
Linguagem MDX 9 Selecionar um conjunto Realacionar um ou mais membros da mesma dimensão membros de outras. { ( [Tempo]. [Abril], [Loja]. [Recife], [Produto]. [Milho] ) , ( ( [Tempo]. [Maio], [Loja]. [Recife], [Produto]. [Milho] ) , ) ( [Tempo]. [Junho], [Loja]. [Recife], [Produto]. [Milho] ), ( [Tempo]. [Julho], [Loja]. [Recife], [Produto]. [Milho] ) } Rudiney Barbosa - rlb@cin. ufpe. br 03/05/2010
Linguagem MDX 10 Rudiney Barbosa - rlb@cin. ufpe. br 03/05/2010
Linguagem MDX 11 Rudiney Barbosa - rlb@cin. ufpe. br 03/05/2010
Linguagem MDX 12 Rudiney Barbosa - rlb@cin. ufpe. br 03/05/2010
Linguagem MDX Função Children 13 Função Children Retorna o conjunto dos filhos de um membro especificado. Caso o membro não possua uma hierarquia, um conjunto vazio será retornado. Sintaxe: [Dim]. [Membro]. Children Exemplo: Qual o valor arrecado nos dois primeiros trimestres do ano de 2006? Rudiney Barbosa - rlb@cin. ufpe. br 03/05/2010
Linguagem MDX Função Children 14 SELECT [DIM_TIME]. [Year - Half Year - Quarter - Month - Date]. [Half Year]. [Semester 1, 2006]. CHILDREN ON COLUMNS, [Measures]. [Valor] ON ROWS FROM POINTFILMES Rudiney Barbosa - rlb@cin. ufpe. br 03/05/2010
Linguagem MDX Função First. Child 15 Função First. Child Retorna o primeiro membro filho de um membro especificado. Sintaxe: [Dim]. [Membro]. First. Child Exemplo: Qual o valor arrecadado somente no primeiro trimestre do ano de 2006? Rudiney Barbosa - rlb@cin. ufpe. br 03/05/2010
Linguagem MDX Função First. Child 16 SELECT [DIM_TIME]. [Year - Half Year - Quarter - Month - Date]. [Half Year]. [Semester 1, 2006]. LASTCHILD ON COLUMNS FROM POINTFILMES Rudiney Barbosa - rlb@cin. ufpe. br 03/05/2010
Linguagem MDX Função Last. Child 17 Last. Child Retorna o último membro filho de um membro especificado. Sintaxe: [Dim]. [Membro]. Last. Child Exemplo: Qual o valor arrecado no segundo semestre de 2006? Rudiney Barbosa - rlb@cin. ufpe. br 03/05/2010
Linguagem MDX Função Last. Child 18 SELECT [DIM_TIME]. [Year - Half Year - Quarter - Month - Date]. [Quarter 4, 2009]. LASTCHILD ON COLUMNS, FROM POINTFILMES Rudiney Barbosa - rlb@cin. ufpe. br 03/05/2010
Linguagem MDX Função Parent 19 Função Parent Retorna o membro pai de um membro especificado. O pai do membro especificado é o mesmo pai do nível ao qual o membro pertence. Sintaxe: [Dim]. [Membro]. Parent Exemplo: este exemplo retorna o valor arrecado no segundo semestre de 2006 Rudiney Barbosa - rlb@cin. ufpe. br 03/05/2010
Linguagem MDX Função Parent 20 SELECT [DIM_TIME]. [Year - Half Year - Quarter - Month - Date]. [Quarter 3, 2006]. PARENT ON COLUMNS FROM POINTFILMES Rudiney Barbosa - rlb@cin. ufpe. br 03/05/2010
Linguagem MDX Função Descendants 21 Função Descendants Retorna um conjunto de descendentes de um membro em um determinado nível. Os argumentos necessários são: um nível de uma hierarquia, e o membro que se deseja obter os descendentes. Sintaxe: Descendants( membro, nível ) Exemplo 1: Qual o valor que cada funcionário arrecadou com as locações em cada trimestre de 2006? Rudiney Barbosa - rlb@cin. ufpe. br 03/05/2010
Linguagem MDX Função Descendants 1 22 SELECT [DIM FUNCIONARIO]. [Nome]. children ON 1, DESCENDANTS ( [DIM_TIME]. [Year - Half Year - Quarter - Month - Date]. [Year]. [Calendar 2006], [DIM_TIME]. [Year - Half Year - Quarter - Month - Date]. [Quarter] )ON 0 FROM [POINTFILMES] Rudiney Barbosa - rlb@cin. ufpe. br 03/05/2010
Linguagem MDX Função Descendants 2 23 Exemplo 2: qual a quantidade de locações que cada funcionário realizou, em cada trimestre do ano 2006? SELECT [DIM FUNCIONARIO]. [Nome]. children ON Rows, DESCENDANTS ( [DIM_TIME]. [Year - Half Year - Quarter - Month - Date]. [Year]. [Calendar 2006], [DIM_TIME]. [Year - Half Year - Quarter - Month - Date]. [Quarter] )ON Columns FROM [POINTFILMES] WHERE [Measures]. [FATOS Count] Rudiney Barbosa - rlb@cin. ufpe. br 03/05/2010
Linguagem MDX Função Descendants (Variações) 24 Variações ( 1 ) Sintaxe: Descendants( membro, número ) SELECT [DIM FUNCIONARIO]. [Nome]. children ON 1, DESCENDANTS ( [DIM_TIME]. [Year - Half Year - Quarter - Month - Date]. [Year]. [Calendar 2006], 2 ) ON 0 FROM [POINTFILMES] WHERE [Measures]. [FATOS Count] Rudiney Barbosa - rlb@cin. ufpe. br 03/05/2010
Linguagem MDX Função Descendants (Variações) 25 Variações ( 2 ): retorna o próprio membro e seus descendentes. Sintaxe: Descendants( [nível | membro] ) SELECT [DIM FUNCIONARIO]. [Nome]. children ON 1, DESCENDANTS ( [DIM_TIME]. [Year - Half Year - Quarter - Month - Date]. [January 2006] )ON 0 FROM [POINTFILMES] WHERE [Measures]. [FATOS Count] Rudiney Barbosa - rlb@cin. ufpe. br 03/05/2010
Linguagem MDX Função Current. Member 26 Função Current. Member Em cada passo de uma iteração recuperamos o membro que está sendo utilizado através da função Current. Member. Sintaxe: Hierarchy_Expression. Current. Member Exemplo apresentado no próximo item (Criar Membro Calculado) Rudiney Barbosa - rlb@cin. ufpe. br 03/05/2010
Linguagem MDX Membro Calculado 27 Membro Calculado Reuso de código Simplificar consultas (*) Sintaxe: WITH <Select With Clause> consulta_mdx <Select With Clause> : : = [ MEMBER identifier AS mdx_expression | SET identifier AS set_expression ]+ Rudiney Barbosa - rlb@cin. ufpe. br 03/05/2010
Linguagem MDX Membro Calculado 28 Exemplo: qual o valor percentual arrecadado em cada mês, em relação ao seu trimestre? WITH MEMBER Measures. Valor. Percentual AS ( [DIM_TIME]. [Year - Half Year - Quarter - Month - Date]. CURRENTMEMBER , [Measures]. [Valor] ) / ( [DIM_TIME]. [Year - Half Year - Quarter -Month-Date]. CURRENTMEMBER. Parent , [Measures]. [Valor] ) * 100 Rudiney Barbosa - rlb@cin. ufpe. br 03/05/2010
Linguagem MDX Membro Calculado 29 SELECT Measures. Valor. Percentual ON COLUMNS, Descendants ( [DIM_TIME]. [Year - Half Year - Quarter - Month - Date], [DIM_TIME]. [Year - Half Year - Quarter - Month - Date]. [Month] ) ON ROWS FROM POINTFILMES Rudiney Barbosa - rlb@cin. ufpe. br 03/05/2010
Linguagem MDX Prev. Member e Next. Member 30 Função Prev. Member e Next Member Prev. Member retorna o membro anterior ao membro especificado, no mesmo nível. Next. Member retorna o próximo membro do membro especificado, no mesmo nível. Sintaxe: [Dim]. [Membro]. Prev. Member/Next. Member Rudiney Barbosa - rlb@cin. ufpe. br 03/05/2010
Linguagem MDX Prev. Member e Next. Member 31 Exemplos: SELECT [DIM_TIME]. [Year - Half Year - Quarter - Month - Date]. [Month]. [January 2007]. NEXTMEMBER ON COLUMNS FROM POINTFILMES SELECT [DIM_TIME]. [Year - Half Year - Quarter - Month - Date]. [Month]. [January 2007]. PREVMEMBER ON COLUMNS FROM POINTFILMES Rudiney Barbosa - rlb@cin. ufpe. br 03/05/2010
Linguagem MDX Função Lag 32 Função Lag Recebe um número n positivo como parâmetro e retorna o nésimo membro anterior ao membro onde foi aplicada a função. Sintaxe: [Dim]. [Membro]. Lag(n) n=0, o retorna o próprio membro. n =1, o retorno é igual ao da função Prev. Member aplicado ao mesmo membro. n=-1, o retorno é igual ao da função Next. Member aplicado ao mesmo membro. Rudiney Barbosa - rlb@cin. ufpe. br 03/05/2010
Linguagem MDX Função Lag 33 Exemplos: SELECT [DIM_TIME]. [Year - Half Year - Quarter - Month - Date]. [Month]. [January 2007]. LAG(0) ON COLUMNS FROM POINTFILMES SELECT [DIM_TIME]. [Year - Half Year - Quarter - Month - Date]. [Month]. [January 2007]. LAG(1) ON COLUMNS FROM POINTFILMES Rudiney Barbosa - rlb@cin. ufpe. br 03/05/2010
Linguagem MDX Função Lag 34 Exemplos (continuação): SELECT [DIM_TIME]. [Year - Half Year - Quarter - Month - Date]. [Month]. [January 2007]. LAG(-1) ON COLUMNS FROM POINTFILMES Rudiney Barbosa - rlb@cin. ufpe. br 03/05/2010
Linguagem MDX Função Lead 35 Função Lead A definição é similar a definição da função Lag, porém o nésimo termo positivo retornado é posterior. Sintaxe: [Dim]. [Membro]. Lead(n) n=0, o retorno é o próprio membro. n =1, o retorno é igual ao da função Next. Member aplicado ao mesmo membro. n=-1, o retorno é igual ao da função Prev. Member aplicado ao mesmo membro. Rudiney Barbosa - rlb@cin. ufpe. br 03/05/2010
Linguagem MDX Função Lead 36 Exemplos: SELECT [DIM_TIME]. [Year - Half Year - Quarter - Month - Date]. [Month]. [January 2007]. LEAD(0) ON COLUMNS FROM POINTFILMES SELECT [DIM_TIME]. [Year - Half Year - Quarter - Month - Date]. [Month]. [January 2007]. LEAD(1) ON COLUMNS FROM POINTFILMES Rudiney Barbosa - rlb@cin. ufpe. br 03/05/2010
Linguagem MDX Função Lead 37 SELECT [DIM_TIME]. [Year - Half Year - Quarter - Month Date]. [Month]. [January 2007]. LEAD(-1) ON COLUMNS FROM POINTFILMES Lembrando a função Lag(n) retorna elementos anteriores a função Lead(n) retorna elementos posteriores Rudiney Barbosa - rlb@cin. ufpe. br 03/05/2010
Linguagem MDX Função AVG 38 Função Avg Retorna o valor médio de uma expressão numérica avaliada em um conjunto. Sintaxe: Avg ( {conjunto}, expressão numérica). Exemplos: Nesse exemplo queremos saber qual a média de locação de cada filme por mês. Rudiney Barbosa - rlb@cin. ufpe. br 03/05/2010
Linguagem MDX Função AVG 39 WITH MEMBER Measures. Valor. Medio AS AVG ( DESCENDANTS ( [DIM_TIME]. [Year - Half Year - Quarter - Month - Date], [DIM_TIME]. [Year - Half Year - Quarter - Month - Date]. [Month] ), [Measures]. [FATOS Count] ) SELECT Measures. Valor. Medio ON COLUMNS, [DIM FILME]. [Nome]. CHILDREN ON ROWS FROM POINTFILMES Rudiney Barbosa - rlb@cin. ufpe. br 03/05/2010
Linguagem MDX Função Members 40 Função Members Retorna o conjunto de membros em uma dimensão, nível ou hierarquia. Sintaxe: [Dim]. Members [Hierarquia]. Members [Nivel]. Members Exemplo: o exemplo da função Members será apresentado junto com a função Order, logo abaixo. Rudiney Barbosa - rlb@cin. ufpe. br 03/05/2010
Linguagem MDX Função Order 41 Função Order Organiza os membros de um conjunto especificado, preservando ou não a ordem hierárquica. Sintaxe: Order({conjunto}, expressão aritmética [, ASC | DESC | BASC | BDESC ] ) ASC: conjunto na ordem ascendente de acordo com a hierarquia; DESC: conjunto na ordem descendente de acordo com a hierarquia; BASC: conjunto na ordem ascendente quebrando a hierarquia; BDESC: conjunto na ordem descendente quebrando a hierarquia; A letra ‘B’ de BASC e BDESC vem de Break, com significado de quebrar a hierarquia. Rudiney Barbosa - rlb@cin. ufpe. br 03/05/2010
Linguagem MDX Função Order 42 Exemplo: ordenar os filmes por valor total arrecado no ano de 2007. SELECT ORDER ([DIM FILME]. [Nome]. MEMBERS, [Measures]. [Valor] , DESC ) ON COLUMNS FROM POINTFILMES WHERE [DIM_TIME]. [Month]. [December 2007] Rudiney Barbosa - rlb@cin. ufpe. br 03/05/2010
Linguagem MDX Função SUM 43 Função SUM Retorna soma de conjunto de valores. Sintaxe: SUM ( {conjunto valores}). Exemplos: Exemplo apresentado na descrição do operador Range. Rudiney Barbosa - rlb@cin. ufpe. br 03/05/2010
Linguagem MDX Função RANGE ( : ) 44 Operador Range (: ) Esse operador retorna um conjunto de membros ordenados que estão entre dois membros especificados. Os dois membros são inclusos no conjunto resultado. Sintaxe: Membro 1 : Membro 2 Exemplos: Neste exemplo apresentamos os filmes em ordem decrescente do valor total de locações que cada um gerou. Rudiney Barbosa - rlb@cin. ufpe. br 03/05/2010
Linguagem MDX Função RANGE ( : ) 45 WITH MEMBER Measures. RENDA_NAS_FERIAS AS SUM ( { [DIM_TIME]. [Year - Half Year - Quarter - Month - Date]. [December 2006] : [DIM_TIME]. [Year - Half Year - Quarter - Month - Date]. [February 2007] }, [Measures]. [Valor] ) Rudiney Barbosa - rlb@cin. ufpe. br 03/05/2010
Linguagem MDX Função RANGE ( : ) 46 SELECT ORDER ( [DIM FILME]. [Nome]. CHILDREN, (Measures. RENDA_NAS_FERIAS) ) ON COLUMNS FROM POINTFILMES Rudiney Barbosa - rlb@cin. ufpe. br 03/05/2010
Linguagem MDX Função Cross. Join 47 Operador Cross. Join Retorna um conjunto que é o produto cartesiano entre dois conjuntos. Esse produto uma relação vazia, ou seja, quando os elementos não se relacionam. Sintaxe: Cross. Join({conjunto 1}, {conjunto 2} [, conjunto. N]* ) Exemplo: quais filmes cada cliente alugou e quais ele não alugou? Rudiney Barbosa - rlb@cin. ufpe. br 03/05/2010
Linguagem MDX Função Cross. Join 48 SELECT CROSSJOIN ( [DIM CLIENTE]. [Nome]. CHILDREN, [DIM FILME]. [Nome]. CHILDREN ) ON COLUMNS FROM POINTFILMES WHERE MEASURES. [FATOS COUNT] Rudiney Barbosa - rlb@cin. ufpe. br 03/05/2010
Linguagem MDX Função Non. Empty 49 Funçao Non. Empty Semelhante a função Cross. Join, porém o conjunto resultante do produto cartesiano somente possui elementos que são do primeiro conjunto e que se relacionam com algum do segundo. Sintaxe: Non. Empty({conjunto 1}, {conjunto 2}) Exemplo: quantos filmes cada cliente alugou? Rudiney Barbosa - rlb@cin. ufpe. br 03/05/2010
Linguagem MDX Função Non. Empty 50 SELECT NONEMPTY ( [DIM CLIENTE]. [Nome]. CHILDREN, [DIM FILME]. [Nome]. CHILDREN ) on columns FROM POINTFILMES where measures. [fatos count] Rudiney Barbosa - rlb@cin. ufpe. br 03/05/2010
Linguagem MDX Função Non. Empty. Cross. Join 51 Função Non. Empty. Cross. Join Retorna um conjunto que é o produto cartesiano de outros conjuntos, com exceção de tuplas vazias, ou seja, é a união das duas funções anteriores, Crossjoin com Non. Empty. Sintaxe: Non. Empty. Cross. Join ({conjunto 1}, {conjunto 2} [, conjunto. N]*) Rudiney Barbosa - rlb@cin. ufpe. br 03/05/2010
Linguagem MDX Função Non. Empty. Cross. Join 52 Exemplo: Quais os funcionários que realizaram a locação de pelo menos um filme no dia 01/01/2006? Quais foram os filmes e quanto foi o aluguel de cada um? Rudiney Barbosa - rlb@cin. ufpe. br 03/05/2010
Linguagem MDX Função Non. Empty. Cross. Join 53 SELECT NONEMPTYCROSSJOIN ( [DIM_TIME]. [Year - Half Year - Quarter - Month - Date]. [Year]. [Calendar 2006]. [Semester 1, 2006]. [Quarter 1, 2006]. [January 2006]. [Sunday, January 01 2006], [DIM FUNCIONARIO]. [Nome]. CHILDREN, [DIM FILME]. [NOME]. CHILDREN )ON 0, { [Measures]. [FATOS Count], [Measures]. [Valor] } on 1 FROM [POINTFILMES] Rudiney Barbosa - rlb@cin. ufpe. br 03/05/2010
Linguagem MDX Função Top. Count 54 Função Top. Count Retorna um conjunto com os n elementos que possuem os maiores valores computado por alguma expressão no conjunto passado. Sintaxe: Top. Count({conjunto}, n, expressao) Exemplo: quais os 10 clientes que mais alugaram e qual foi a quantidade? Rudiney Barbosa - rlb@cin. ufpe. br 03/05/2010
Linguagem MDX Função Top. Count 55 SELECT [Measures]. [FATOS Count] ON COLUMNS, TOPCOUNT ( [DIM CLIENTE]. [Nome]. children, 10, [Measures]. [FATOS Count] )ON ROWS FROM [Point. Filmes] Rudiney Barbosa - rlb@cin. ufpe. br 03/05/2010
Linguagem MDX Função Rank 56 Função Rank Retorna uma classificação/posição (1, 2, 3, 4. . . ) de um membro com base na sua classificação em um determinado conjunto. Sintaxe: Rank( membro, {conjunto} ) Exemplos: o exemplo da função Rank será apresentado no próximo tópico (conjunto nomeado) Rudiney Barbosa - rlb@cin. ufpe. br 03/05/2010
Linguagem MDX Conjunto Nomeado 57 Conjunto Nomeado Reuso de código Simplificar consultas (*) Escopo da consulta (o que utilizaremos), Escopo da sessão Escopo global. Rudiney Barbosa - rlb@cin. ufpe. br 03/05/2010
Linguagem MDX Conjunto Nomeado 58 Sintaxe: WITH <Select With Clause> consulta_mdx <Select With Clause> : : = [ MEMBER identifier AS mdx_expression | SET identifier AS set_expression ]+ Rudiney Barbosa - rlb@cin. ufpe. br 03/05/2010
Linguagem MDX Conjunto Nomeado 59 Exemplos: este exemplo cria um rank dos clientes que mais alugaram filmes. Apresenta os clientes, a posição de cada um no rank e quantidade de filmes locados. Obs: O resultado é similar ao exemplo apresentado no função Top. Count. Rudiney Barbosa - rlb@cin. ufpe. br 03/05/2010
Linguagem MDX Conjunto Nomeado 60 WITH SET [Ordered. Set] AS ORDER ( [DIM CLIENTE]. [Nome]. MEMBERS, [Measures]. [FATOS Count], BDESC ) MEMBER [Measures]. [Rank] AS RANK ( [DIM CLIENTE]. [Nome]. Current. Member, [Ordered. Set] ) Rudiney Barbosa - rlb@cin. ufpe. br 03/05/2010
Linguagem MDX Conjunto Nomeado 61 SELECT {[Measures]. [Rank], [Measures]. [FATOS Count]} ON 0, {[Ordered. Set]} ON 1 FROM [Point. Filmes] Rudiney Barbosa - rlb@cin. ufpe. br 03/05/2010
Linguagem MDX Função Drill. Down. Level 62 Função Drill. Down. Level Acessa um cojunto em um determinado nível Sintaxe: Drill. Down. Level ({conjunto} [, nível | número]) Rudiney Barbosa - rlb@cin. ufpe. br 03/05/2010
Linguagem MDX Função Drill. Down. Level 1 63 Se nem expressão de nível ou o número for especificado (Drill. Down. Level ({conjunto})), então a função irá retornar um conjunto composto pelo nível especificado e seus filhos. Exemplo 1: qual o valor arrecadado no primeiro semestre de 2009 e nos seus respectivos trimestres? Rudiney Barbosa - rlb@cin. ufpe. br 03/05/2010
Linguagem MDX Função Drill. Down. Level 1 64 SELECT DRILLDOWNLEVEL ( [DIM_TIME]. [Year - Half Year - Quarter - Month - Date]. [Year]. [Calendar 2009]. [semester 1, 2009] ) ON 0 FROM POINTFILMES Rudiney Barbosa - rlb@cin. ufpe. br 03/05/2010
Linguagem MDX Função Drill. Down. Level 2 65 Se uma expressão de nível for especificada (Drill. Down. Level ({conjunto} , nível) e não existir nenhum membro no nível especificado, no conjunto, esse conjunto será retornado. Exemplo 2: qual o valor arrecadado em cada mês? Explicação da consulta: foi utilizado o conjunto de meses e o nível Quarter. Como os membros de Quarter não pertencem ao conjunto de meses, o retorno será um conjunto apenas com os meses. Rudiney Barbosa - rlb@cin. ufpe. br 03/05/2010
Linguagem MDX Função Drill. Down. Level 2 66 SELECT DRILLDOWNLEVEL ( [DIM_TIME]. [Year - Half Year - Quarter - Month - Date]. [Month]. members, [DIM_TIME]. [Year - Half Year - Quarter - Month - Date]. [Quarter] ) ON 0 FROM POINTFILMES Rudiney Barbosa - rlb@cin. ufpe. br 03/05/2010
Linguagem MDX Função Drill. Down. Level 3 67 Se uma expressão de nível for especificada e existir um membro no nível especificado, no conjunto, tal conjunto unido com os membros de cada elemento do mesmo, será retornado. . Exemplo 3: qual o valor arrecadado em cada trimestre e nos seus respectivos meses? Explicação: foi utilizado o conjunto de trimestres e o nível Quarter. Como os membros de Quarter pertencem ao conjunto de trimestres, o retorno será um conjunto apenas com os meses. Rudiney Barbosa - rlb@cin. ufpe. br 03/05/2010
Linguagem MDX Função Drill. Down. Level 3 68 SELECT DRILLDOWNLEVEL ( [DIM_TIME]. [Year - Half Year - Quarter - Month - Date]. [Quarter]. members, [DIM_TIME]. [Year - Half Year - Quarter - Month Date]. [Quarter] ) ON 0 FROM POINTFILMES Rudiney Barbosa - rlb@cin. ufpe. br 03/05/2010
Linguagem MDX Função Drill. Down. Level 4 69 Exemplo 4: quais os 5 filmes mais locados em cada trimestre? Qual foi a quantidade no trimestre? Qual a quantidade em cada mês do trimestre? Rudiney Barbosa - rlb@cin. ufpe. br 03/05/2010
Linguagem MDX Função Drill. Down. Level 4 70 SELECT DRILLDOWNLEVEL ( [DIM_TIME]. [Year - Half Year - Quarter - Month - Date]. [Quarter]. members, [DIM_TIME]. [Year - Half Year - Quarter - Month - Date]. [Quarter] ) ON COLUMNS, TOPCOUNT ( [DIM FILME]. [Nome]. children, 5, [Measures]. [FATOS Count] ) ON ROWS FROM Point. Filmes where [Measures]. [Fatos Count] Rudiney Barbosa - rlb@cin. ufpe. br 03/05/2010
Linguagem MDX Função Drill. Down. Member 71 Função Drill. Down. Member Acessa os filhos de apenas um dos membros do primeiro conjunto somente quando tal membro pertencer ao segundo conjunto especificado. O retorno são todos os membros do primeiro conjunto unido com os filhos do membro acessado, ordenados pela hierarquia Sintaxe: Drill. Down. Member ({conjunto 1}, {conjunto 2}? msdn? ) Rudiney Barbosa - rlb@cin. ufpe. br 03/05/2010
Linguagem MDX Função Drill. Down. Member 72 Exemplos: qual o valor total de aluguéis realizados por cada funcionário em todos os anos, mas com ênfase no ano 2007. O resultado é apresentado na figura 9? Rudiney Barbosa - rlb@cin. ufpe. br 03/05/2010
Linguagem MDX Função Drill. Down. Member 73 SELECT DRILLDOWNMEMBER ( [DIM_TIME]. [Year - Half Year - Quarter - Month - Date]. [Year]. members, [DIM_TIME]. [Year - Half Year - Quarter - Month - Date]. [Year]. [Calendar 2007] Não é um conjunto ) ON 0, [DIM FUNCIONARIO]. [Nome]. children ON 1 FROM [Point. Filmes] Rudiney Barbosa - rlb@cin. ufpe. br 03/05/2010
? 74 ? Rudiney Barbosa - rlb@cin. ufpe. br 03/05/2010
Referências 75 [1] Business Intelligence, acessado 27/03/2010 url: http: //pt. wikipedia. org/wiki/Business_intelligence [2]MDX: The Language of Multidimensional Analysis, acessado 22/03/2010 url: http: //www. panorama. com/documents/mdxwhitepaper. pdf [3] TUTORIAL: Introduction to Multidimensional Expressions (MDX), acessado 22/03/2010 url: http: //www. fing. edu. uy/inco/grupos/csi/esp/Cursos/cursos_ act/2005/DAP_Sist. DW/Material/2 -SDW-Laboratorio 12005. pdf Rudiney Barbosa - rlb@cin. ufpe. br 03/05/2010
Referências 76 [4] bda_mdx. pdf, acessado 22/03/2010 url: http: //www. cin. ufpe. br/~if 695/ [5] Mdx allows complex, multidimensional queries, acessado 22/03/2010 url: http: //www. oracle. com/technology/products/bi/epm/pdf/mdx_co mplex_queries. pdf [6] MDX at First Glance: Introduction to SQL Server MDX Essentials, acessado em 01/04/2010 url: http: //www. databasejournal. com/features/mssql/article. php/1495 511/MDX-at-First-Glance-Introduction-to-SQL-Server-MDXEssentials. htm Rudiney Barbosa - rlb@cin. ufpe. br 03/05/2010
Referências 77 [7] MDX Tutorials, acessado 01/04/2010 url: http: //www. mdxtutorials. net/ [8] Multidimensional Expressions (MDX) Reference, acessado 14/04/2010 url: http: //msdn. microsoft. com/ptbr/library/ms 145506%28 v=SQL. 100%29. aspx Rudiney Barbosa - rlb@cin. ufpe. br 03/05/2010
- Slides: 77