SQL Server Analysis Services (SSAS) is an online analytical processing (OLAP) and data mining tool in Microsoft SQL Server used as a tool by organizations to analyze and make sense of information possibly spread out across multiple databases, or in disparate tables or files. Analysis Services includes a group of OLAP and data mining capabilities and comes in two flavors - Multidimensional and Tabular.

Share tech news, updates, or what's on your mind.

Sign up to Post

I would like to know if it can be done in MDX or DAX for checking status in every date like the following.

I can build the cube based on the following data.  I would like to count the status for id 100,101,102 and 103 in each date.
   id      event_date      status
100      01/01/2018      Pending
101      01/01/2018      Pending
102      04/02/2018      Pending
100      07/02/2018      Not Granted
101      14/02/2018      Granted
101      18/02/2018      Pending
100      15/03/2018      Pending
102      01/05/2018      Granted
103      03/06/2018      Pending

I would like to have the result like the following: (in 2018-01-01: (Pending:100,101); 2018-02-04(Pending:100,101,102); 2018-02-07(Pending:101,102, NotGranted:100 )....
event_date      Granted      Not Granted      Pending
01/01/2018                      2
04/02/2018                    3
07/02/2018             1      2
14/02/2018      1      1      1
18/02/2018             1      2
15/03/2018                    3
01/05/2018      1             2
03/06/2018      1             3

Cloud Class® Course: CompTIA Healthcare IT Tech
LVL 12
Cloud Class® Course: CompTIA Healthcare IT Tech

This course will help prep you to earn the CompTIA Healthcare IT Technician certification showing that you have the knowledge and skills needed to succeed in installing, managing, and troubleshooting IT systems in medical and clinical settings.

Problem statement: I am trying to do a writeback through .NET assembly stored procedure in SSAS - Multidimensional Cube

Are there any server level settings ? or any additional roles setting?

**Note: User is already an admin.

The .NET code works perfectly fine when debugged from the visual studio, the connection to the server works and the cube update also works.

1) When created an assembly using the dll file from .NET class library in the SSAS server, the calling of assembly stored procedure fails and throws error as follows;
a) Assembly Permission set : Safe/External Access
"Executing the query ...
Query (1, 6) Execution of the managed stored procedure UpdateCube failed with the following error: Exception has been thrown by the target of an invocation.Request for the permission of type 'System.Data.OleDb.OleDbPermission, System.Data, Version=, Culture=neutral, PublicKeyToken=b77a5c561934e089' failed..
Run complete"
b) Assembly Permission set : Unrestricted
"Executing the query ...
Query (1, 6) Execution of the managed stored procedure UpdateCube failed with the following error: Exception has been thrown by the target of an invocation.An error was encountered in the transport layer.
The peer prematurely closed the connection..
Run complete"

Attached my .cs code which I build to obtain the dll file and then create an assembly on SSAS.
I decommissioned a database analysis server and need to move a tabular  model to a new server. I open the project in Visual Studio, change the workspace server yet when I try to compile I get "cannot build projects that contain more than one .bim file". There is only one .bim file in this project. Where is 2nd one?
We are switching to a DevOps local source control database environment.

In SQL Server Data Tools , In an Analysis Service project,  (I note there are no pre/post build events to take advantage of) is there a way to make DataSource Dynamic?

So when we deploy the cubes it takes the Environment into account.
I'm trying to write a conditional sum in MDX but its being applied to the whole instead of just applying to the criteria i specified. Does anyone know what i'm doing wrong?

WITH MEMBER [Measures].[PnLCalc] AS
  CASE [Voyage].[Vessel Tag].CurrentMember
  WHEN Instr([Voyage].[Vessel Tag].CurrentMember.Name,'ACCL') > 0 AND [Date].[Year].&[2018] 
  THEN [Measures].[PnL] + (150 * [Measures].[Net Days])
  ELSE [Measures].[PnL] END , FORMAT_STRING = "$#,##0;($#,##0)"  

SELECT  {   [Measures].[PnLCalc], 
							} ON COLUMNS,
						{ ([Date].[Month].[Month].ALLMEMBERS  ) } ON ROWS 
					FROM ( SELECT ( { [Date].[Year].&[2018] } ) ON COLUMNS FROM 
									( SELECT ( {  
															[Voyage].[Vessel Tag].[Vessel Tag].ALLMEMBERS,
																Instr([Voyage].[Vessel Tag].CurrentMember.Name,'FCCI') > 0
																Instr([Voyage].[Vessel Tag].CurrentMember.Name,'FCCBV') > 0
																Instr([Voyage].[Vessel Tag].CurrentMember.Name,'FCCSP') > 0																								   
																Instr([Voyage].[Vessel Tag].CurrentMember.Name,'ACCL') > 0
																Instr([Voyage].[Vessel Tag].CurrentMember.Name,'ACCBV') > 0
												} ) ON COLUMNS 
											FROM [cubeVoyageResults])) 
							WHERE ([Voyage].[Vessel Tag].CurrentMember, [Date].[Year].&[2018])

Open in new window

Hello ,

I have a Tabular SSAS Model cube and have a measure that hours unused  percent like Hours Unused %:=(1 - (sum([CompletedHours])/sum([HoursLeft]))) * 100

In the table, I have area ie North, South, West and East. I also have Employees per area.

When I view the data in excel and in pivot view I see the Hours unused % showing correctly when I filter by an area but when I try to add in the employees into the rows it displays all employees not just the employees in that particular area.

I'm was looking to maybe use calculate table function, but I can't seem to get it right. Can anyone assist, please?

Hi I have a following formula which should be implemented using MDX
UnitMarketShare=(Territory Product Units/National Product Units)*100

Dimension Geography has Territory and country ; there are multiple Members in Country attribute and each country has multiple territory (1:1 relationship between territory and country)

I have to find the total Product units(for each product) for each country and then divide it with Territory product Units. I tried the following code but i am failing to keep the National level aggregation after pulling the territory.

with member as
[Geography].[Country].&[XYZ],[Measures].[Sales - Units])

 member measures.tabc as
([Geography].[Territory],[Measures].[Sales - Units])

member measures.ab as
([Measures].[Sales - Units]/

select [Geography].[Territory].[Territory] on 1,
{,measures.ab,measures.tabc,[Measures].[Sales - Units]} on 0
from [CLG_MultiSourceCube]
where [Geography].[Country].&[XYZ]

Following is the sample dummy data with desired output

Country    Territory   SalesUnits   TerritorySales   NationalSales   UnitMarketShare
XYZ              T1                  100                  100                 350                      28.57
XYZ              T2                  200                  200                 350                      57.14
XYZ              T3                  50                      50                 350                      14.28
ABC             T4   …
I have an existing SSAS muti-dimensional data cube I'm trying to add another calculated member to.  I added a "parallelperiod" and that MDX query is working well.

(ParallelPeriod([Date].[FY-Hierarchy].[Fiscal Year],1,[Date].[FY-Hierarchy].currentmember),[Measures].[reseller sales amount])

Open in new window

My goal is to get the same calcualtion for Year-to-date(YTD). I'm trying to plug in YTD into that and I get #value! in excel.

(YTD(ParallelPeriod([Date].[FY-Hierarchy].[Fiscal Year],1,[Date].[FY-Hierarchy].currentmember)),[Measures].[reseller sales amount])

Open in new window

Any ideas on how to get YTD to work?
Hi Sir,

How to find  attribute name,level name and hierarchy name  of olap database usin AMO?

Hi Sir, I want to retrieve all prespective with in cube getting the error due to microsoft.analysisservices.prective is not getting.

Please help me.

Cloud Class® Course: Microsoft Azure 2017
LVL 12
Cloud Class® Course: Microsoft Azure 2017

Azure has a changed a lot since it was originally introduce by adding new services and features. Do you know everything you need to about Azure? This course will teach you about the Azure App Service, monitoring and application insights, DevOps, and Team Services.

Hi, i'm need to know it's possible to create Live Data warehouse.
to be transfer data when adding new records or any changes immediately

I created a SQL data-cube in SSAS called Test. I logged into SSMS, went to the Test database and added a role called Analyst. I added myself and another guy to the group.

I also went to BIDS to make sure the cube is set to TRUE for visibility.

I can see the cube in Excel, but the other guy can't. We have 3 other cubes that he can see, but just not the Test cube,

Does anyone know what I'm doing wrong?
I have following Dim Tables

FactTable :FactInvoiceDetails

My question is :

DimCustomer and DimSalesPerson having SiteID
SiteID are United Kigdom,Germany,France,USA

Dimcustomer and FactTable (FactInvoiceDetails) connected with SKCustomerKey
DimSalesPerson and FactTable (FactInvoiceDetails) connected with SKSalesPersonKey

I need to know How to connect Dimsite with DimCustomer and DimSalesPerson

But Dimsite key is connected FactInvoiceDetails not DimCustomer and DimSalesPerson
I have a primary fact table of Events with a bridge to another fact table of Interest that are tied by an Event Id. Each event can have multiple Interest. I'm able to get the correct Event & Interest counts.

The same Events fact table has another bridge to another fact table of Profiles, but this is linked by a Profile Code within the Event, instead of the Event Id. I'm able to get the correct Event counts with the correct distribution but the problem is that the Interest counts are always the same, the total sum of Interests.

The one thing I haven't tried is to include every Event Id in the Profile fact for every possible combination. I would imagine this could get huge and have a negative impact on performance.

I've attached the design and examples of correct results and of the  wrong Interest measure.
Correct ExampleMultiple Fact TablesWrong Example
I have an excel data cube (analysis services) report I'm working with . I have a report that filters a set number of part numbers from a list of about 20,000+. Based on the report requirements, I need to filter that based on a list I'm given. AS of now, the only way I know of is entering them one at a time. Very very time consuming when I have several hundred. Is there a better way? Copy and paste the list? Filter the pivot tablet based on list in another column?
I'm getting following Error Message

Errors in the OLAP storage engine: A duplicate attribute key has been found when processing: Table: 'dbo_DimCustomer', Column: 'siteID', Value: '1'; Table: 'dbo_DimCustomer', Column: 'city', Value: ''. The attribute is 'City'.

SiteID - 1,2,3
City - Key Atrribute , SiteID ,City and Name conversion "City Label" (County+ city)
Country  Key Atrribute , SiteID ,Country and Name conversion "Country Label" (County)
Need help in tabular cube processing automation of Azure Analysis Service with the data source of Azure data lake.
When I try to create a ssas tabular project in ssdt I get the following error.

You are not an Administrator on the workspace database server (Servername).

Any suggestions?
In PowerShell ISE, running modified code to create partitions programmatically from a good example, but said example doesn't work.
$as = New-Object Microsoft.AnalysisServices.Server
   # get the database
   $db = $as.Databases.FindByName($AS_DATABASE)
   write-host ("Opened database {0} " -f $db.ToString())

   $model = $db.Model
   write-host ("Found model {0} " -f $model.ToString())

Open in new window

The connection to the database works fine. But $db.Model doesn't find an object. According to the directions, I'm running this in SQLPS, which I presume makes it unnecessary to add a reference to the Microsoft.AnalysisServices.Tabular assembly but is otherwise the same. When I run a similar code in ISE with the assembly reference, I do reach the model, but then I'm stymied by a DataSourceID I cannot find.
Get your problem seen by more experts
LVL 12
Get your problem seen by more experts

Be seen. Boost your question’s priority for more expert views and faster solutions

I'm new with SQL Server, but am pretty skilled with BI tools using Power Query & Power Pivot and such.  To learn more about the upward limits of Power Query and to get to know more about SQL Server Analytical Services (SSAS), the Tablular model and SQL Server Data Tools (SSDT), I started a self-learning project using a large CSV dataset from the US Dept of Ed, with 1900+ columns, 98000+ rows (dataset is publicly available).   I found Power Query does a nicer job of parsing raw CSV data into correct columns than the SQL Server import/export wizard, and has fewer constraints.  For example, Power Query can handle sets with > 1000 columns.  Most of the USDeptofEd data columns contain values that can be unpivoted; doing so creates a file with 18 columns but with over 185 million rows!  So it seems best to load this data into a proper SQL Server database with tables.  Of course, to get SSAS to accept Power Pivot data model I had to split the tables into 2 so none had more than 1000 columns - which I did.  I successfully imported the data into a SSAS Tabular solution using suggestions at this this OakTree post.  This was all done on a i5-2320 3GHz 64 bit processor running on Windows 10 with lots of unused storage, but 8GB of RAM.  

Here are a few screen shots so you can see what's going on:Power QueryPower Pivot - data modelSQL Server Data Tools in Visual StudioPower QueryPower Pivot - Data ModelVisual Studio
1. Can anyone tell if my data is optimally stored in SQL Server? …

I have a simple MDX cross join that produces the following result

select crossjoin (   {[Product].children}  ,{ [Measures].[Actual], [Measures].[Plan] }  )
ON Columns,
[Region].children on Rows
From [cube]

eg product 1   product 1     product 2  product 2
     Actual         Plan              Actual        Plan

crossjoin result
I want to combine the member names from the 2 column dimensions into one name, to look like a relational grid
eg product 1 - Actual    product 1 - Plan       product 2 - Actual    product 2 - Plan

Flattened Result
The Products are dynamic - the Measures can be hard coded.

Has anyone got a head start on how I may be able to produce the flattened output?

Hi I have a cube that I have setup a Report Action on that opens an SSRS report that contains a parameter of @JobNumb.  The SSRS Report is based on a database, NOT a cube.  I can get the Action to appear on the menu when I test the cube in Excel and open the report is SSRS, however I am struggling to pass the parameter over!  I have tried several variations and simply cannot get it to work.

The Parameter Name in SSAS is the same as the Parameter Name is SSRS.
The SSRS Server Details are correct in the SSAS Reporting Action as it opens the report successfully.
If I type in the job number itself as the Parameter Value, eg "170000007" then the Report runs successfully with the correct job no.

I can seem to find lots on passing parameters from a cube to an SSRS Report based ON a cube, but nothing about passing a parameter from a cube to an SSRS Report based ON a database as I think it makes a difference.

I am not good with MDX and have tried the following variations as the Parameter Value, some do return a value in the SSRS Report Job Parameter field (those with a YES) but the majority don't:

"170000007"      yes      works and the report runs successfully with the correct job no.

[Job Trades].[Job Trade].[Job No].&[170000007]      no      
[Job Trades].[Job Trade].[Job No].CurrentMember      no      
[Job Trades].[Job Trade].[Job No].CurrentMember.Name      no      
[Job Trades].[Job Trade].[Job No].CurrentMember.UniqueName      no      
[Job Trades].[Job Trade].[Job No].CurrentMember.Value      no      
I have a mobile report with one SSAS (MDX) dataset that has a parameter for the "Region". When I test the URL containing the parameter query string 2 of the 16 Regions don't populate any data on the mobile report. In SSMS and in data preview of the mobile report publisher ALL regions have data.

I've already checked the dataset for filters and I have none. Any ideas on what would cause certain MDX members not to pull up data?

Thank you!
Hi all,

I have a request from my client how to prevent any user accessing a cube from SQL Server Management studio. My problem is we are deploying and processing  a cube on dedicated server that we can not control all, it means  there are some local admin/ group admin accounts who are sys role privileges. They definitely view data from my cube database.

The question is here how I can prevent them viewing my data from cube although they are  local admin/ group admin accounts?

Hello Experts Exchange
I have followed the instructions of this question;

But when I browse the cube all my cost centres have the total amount that is in my data.

I have uploaded a screen shot to show what I mean.

How do I get the correct figures for the correct cost centre?








SQL Server Analysis Services (SSAS) is an online analytical processing (OLAP) and data mining tool in Microsoft SQL Server used as a tool by organizations to analyze and make sense of information possibly spread out across multiple databases, or in disparate tables or files. Analysis Services includes a group of OLAP and data mining capabilities and comes in two flavors - Multidimensional and Tabular.

Top Experts In