Serj K:
Am cautat fara succes in tot felul de surse, dar nu am gasit cum pot face ca o anumita valoare sa se agrege diferit pe unele dimensiuni.
Exemplu concret:
-avem un tabel cu structura
Pe linii - Produs (dimensiune)
Pe coloane - Client (dimensiune)
Masura - Valoare
Structura care ar trebui sa o obtin din cub:
Produs Ceapa Cartofi Mere TOTAL
Clienti
Marius 10 20 30 60
Gogu 20 10 0 30
Gigel 5 7 6 6
TOTAL 11,66 12,3 12 32
Deci pe linie - agregarea e suma, dar pe coloane - agregarea e medie.
Nu cred ca poti rezolva problema doar in MDX sau/şi din server-ul Analysis Services.
Soluţia ar fi să apelezi interogarea MDX din T-SQL sau rezultatele generate din interogarea MDX să le duci într-un generator de rapoarte ...
În cazul tău, poţi încerca să adaptezi această soluţie care pentru mine a funcţionat:
sp_configure 'show advanced options' , 1
RECONFIGURE
GO
sp_configure 'ad hoc distributed queries' , 1
RECONFIGURE
GO
SELECT 1 AS Aux, CAST("[Produs].[Produs].[Grupa].[MEMBER_CAPTION]" AS VARCHAR(255)) AS Produs,
CAST(ISNULL("[Timp].[Calendar].[An].&[2005]",0) AS MONEY) AS Vanzari2005,
CAST(ISNULL("[Timp].[Calendar].[An].&[2006]",0) AS MONEY) AS Vanzari2006,
CAST(ISNULL("[Timp].[Calendar].[An].&[2007]",0) AS MONEY) AS Vanzari2007
FROM OPENROWSET
('MSOLAP',
'DATASOURCE=localhost;Initial Catalog=BazaDeDateAS;',
'SELECT {[Produs].[Produs].[Grupa]} ON ROWS,{[Timp].[Calendar].[An]} ON COLUMNS FROM CubVanzari WHERE Valoare') AS Cub
UNION ALL
SELECT 2 AS Aux, 'Total' AS Total, AVG(Vanzari2005) AS Medie2005, AVG(Vanzari2006) AS Medie2006, AVG(Vanzari2007) AS
FROM
(
SELECT CAST("[Produs].[Produs].[Grupa].[MEMBER_CAPTION]" AS VARCHAR(255)) AS Produs,
CAST(ISNULL("[Timp].[Calendar].[An].&[2005]",0) AS MONEY) AS Vanzari2005,
CAST(ISNULL("[Timp].[Calendar].[An].&[2006]",0) AS MONEY) AS Vanzari2006,
CAST(ISNULL("[Timp].[Calendar].[An].&[2007]",0) AS MONEY) AS Vanzari2007
FROM OPENROWSET
('MSOLAP',
'DATASOURCE=localhost;Initial Catalog=BazaDeDateAS;',
'SELECT {[Produs].[Produs].[Grupa]} ON ROWS,{[Timp].[Calendar].[An]} ON COLUMNS FROM CubVanzari WHERE Valoare') AS Cub
) AS TsqlQuery Medie2007
ORDER BY Aux
EXEC sp_configure 'ad hoc distributed queries' , 0
RECONFIGURE
GO
sp_configure 'show advanced options' , 0
RECONFIGURE
GO