Quantcast
Channel: SQL Server Analysis Services forum
Viewing all 14337 articles
Browse latest View live

OLAP UI Tools for business users

$
0
0
I'm looking for good OLAP UI Reporting tool - web based or client based. Our business users needs to access&use OLAP cubes like a report generator and allow users to select some dimensions and measures of the cube. Our business users are not too computer savy, and plain excellent excel or PowerPivot may scare them away (with too many options). what lightweight tools could be used to develop business user friendly OLAP UI? Thank you

SSDT - Using a SharePoint list data feed as source - "column does not exist in the rowset" error

$
0
0

Hey guys!

So, I want to use a SharePoint list data to create a cube/tabular model, in order to make a complex analysis in PPS using MDX.

To create the tabular model, I'm using the SS Data Tools, and importing a feed from the respective SharePoint list (using the _vti_bin/listdata.svcextension and then selecting the list(s) I wanna to import).

Everything looks fine and smooth, I can select and preview the data in the table import wizard, but in the end, when importing, I always get this error IF the table has one or more row of data (if the table is empty, it's ok...) - the <...> column doesn't exist in the rowset.

(Curiously, when I have the same procedure in PowerPivot for Excel, I have no problems, everything works fine. The problem is that then I get again errors if I try to create a tabular model on SSDT importing a PowerPivot file).

Here's the error:

Had you already tried this in SSDT? Are you experiencing the same trouble?

Best regards, and thanks in advance!

Jorge Mateus


Jorge Mateus

How to make Calaculated Measure perform better

$
0
0
I have a Calculated measure defined on my Test system 64bit ssas 2008 but when moved to Prod(ssas 2005 32bit) it seems to stall when user
refreshes Pivot Table. Upgrade is in process, but need to resolve speed issue for now. Can it be re-coded to improve performance?



IIF
(Measures.[Qty On Hand]=0
OR
Measures.[Monthly Average Demand]=0,
null,
Measures.[Qty On Hand]/(Measures.[Monthly Average Demand]/30))

DAX : Combine CALCULATE and ALL fail to ignore the current context

$
0
0

Hi all,

I'm learning DAX Query by the example in page(http://www.sqlservercentral.com/articles/DAX/97522/).

When I test the example in section 'Row and Filter Context',I find CALCULATE and ALL fail to ignore the current context, and my result is shown below.I test it in DirectQuery and In-Memory model,the result is the same.I can't find the problem.The expect result is in the example page,the forum don't permit me upload the image.

Any help is much appreciated .

define
   measure 'FactInternetSales'[Sum of Sales] = SUM('FactInternetSales'[SalesAmount] )
   measure 'FactInternetSales'[Product Universe] = calculate( 'FactInternetSales'[Sum of Sales], ALL(DimProduct[EnglishProductName] ) )
evaluate(
    summarize(
    'FactInternetSales',
    'DimSalesTerritory'[SalesTerritoryRegion],
    DimProduct[EnglishProductName],
    'DimDate'[CalendarYear],"Sum of Sales", [Sum of Sales],"Product Universe", [Product Universe]
    )
)
order by
 'DimSalesTerritory'[SalesTerritoryRegion]
,DimProduct[EnglishProductName]
,'DimDate'[CalendarYear]


[Region]	[EnglishProductName]	[CalendarYear]	  [Sum of Sales]    [Pduct Universe]
Australia	All-Purpose Bike Stand	2013	                 9540	               9540
Australia	All-Purpose Bike Stand	2014                  795                       795
Australia	AWC Logo Cap	        2012	                 17.98                     17.98
Australia	AWC Logo Cap	        2013	                 3676.91	               3676.91
Australia	AWC Logo Cap	        2014	                 116.87                    116.87
Australia	Bike Wash - Dissolver	2013	                 1661.55	               1661.55
Australia	Bike Wash - Dissolver	2014	                 47.7                        47.7
Australia	Classic Vest, L	                2013	                 2667                      2667
Australia	Classic Vest, L	                2014	                 127                       127
Australia	Classic Vest, M	                2013	                 2286                      2286
Australia	Classic Vest, M	                2014	                 190.5                     190.5
Australia	Classic Vest, S	                2013	                 1905                      1905


By the way,in the online example,RANKX function in my test also has no effect,no matter how you test,the rank score is 1 all the rows.I feel the problem is the similar,but I can't find what is wrong.












Ho to edit or add new columns to a table which has partition in tabular model

$
0
0

Hi,

I need to add new columns and remove some columns from a table in tabular model using visual studio. However the table has partition on it. When i add new columns to the table the processing time increases and also the record count is higher than what I am fetching from the source view. Do I need to first make changes to the partition table and then make changes to the table.

Also I have notice an object reference error when i try to update the partition table first.

Please advise.

MDX Problem - Except Function in calculated member

$
0
0

Hello everybody,

I have the following code in MDX to create a calculated member. I tried it with and without .MEMBERS and I got the same result like you see under the code statement.

AGGREGATE(

EXCEPT([Material].[Bohrerart Id].[Bohrerart Id].MEMBERS
      ,[Material].[Bohrerart Id].&[YPAB]),
([Measures].[Nettoerloes CO])) +
AGGREGATE(
EXCEPT([Material].[Bohrerart Id].[Bohrerart Id].MEMBERS
      ,[Material].[Bohrerart Id].&[YPAB]),
([Measures].[Erloes Projektpos])) -
AGGREGATE(
EXCEPT([Material].[Bohrerart Id].[Bohrerart Id].MEMBERS
      ,[Material].[Bohrerart Id].&[YPAB]),
([Measures].[PVF PJ])) -
AGGREGATE(
EXCEPT([Material].[Bohrerart Id].[Bohrerart Id].MEMBERS
      ,[Material].[Bohrerart Id].&[YPAB]),
([Measures].[Skonto PJ])) -
AGGREGATE(
EXCEPT([Material].[Bohrerart Id].[Bohrerart Id].MEMBERS
      ,[Material].[Bohrerart Id].&[YPAB]),
([Measures].[Bonus PJ]))


Now I have the problem, that if I want to analyse each member of the "Bohrerart" dimension, all members have the total value.

It looks like this:

Element Measure 1 / Measure 2 (with except) /Measure 3 (what i expect to get)

YPAB  20 / 80 / -

A 20 /80 / 20

B 20 /80 / 20

C 20 /80 / 20

D 20 /80 / 20


What am I doing wrong? Could someone help me to understand and solve this problem?

Kind Regards

MuenchM








SSAS Cube via Excel / ActiveDirectory

$
0
0

Hello,

I query a SSAS cube via Excel. Most of the time this works without problems. But sometimes Excel does not send the account name (Active Directory) along with the query.

Log file of IIS (excerpt):

cs-uri-stem s-port cs-username cs (User-Agent) sc-status

/OLAP/msmdpump.dll 80 Domain\ Username MSOLAP + 10.0 + client 200
/OLAP/msmdpump.dll 80 - MSOLAP + 10.0 + client 401


2. Line: Same client, same client IP, but no account name is logged (Status 401 in IIS).

Does anyone have any idea what this could be?


Specify Cube Perspective in Excel

$
0
0
I'm not finding anything on this.  Does anyone know if this is possible?

using sql server 2016 temporal tables as SCD2 dimensions in SSAS models

$
0
0

So...

While 2016 temporal tables makes a lot of sense in an OLTP environment, where we also write reporting queries 

our selves - for example the following join between  facts (F) and temporal SCD2 table of Product dimension (P):

ON P.ProductId = F.ProductId  AND F.FactDate BETWEEN P.ValidFrom AND P.ValidTo 

I wonder if this is relevant at all to power bi or SSAS models  

where join between facts and dimension uses direct comparison of joined columns only (no BETWEEN...)

I guess we could over come this limitation by adding a calculated field in the temporal scd2 table that would concatenate fields ProductID + ValidFrom to recreate some kind of traditional FK between facts and Product dimension so we are still left with a nice cut in ETL development costs of SCD2 dimensions?

Has any one tried this in Practice?

Any foreseen pros unt cons?

TIA!

Rea

MDX Cumulative Measures from specific point forward,

$
0
0

Hi

I have a cumulative calculated measure (See below)

However, I need this to ONLY start calculating from a specific dimension member onwards. for example the measure group table is linked to a dimensionand only when a certain flag = true must it 'start' computing the cumulative - is this possible?

Also I found that when I apply dimension filters the below cumulative measure does not seem to take them into consideration?

SUM
(
{{[DimFirstPayDate].[First Pay Date Hierarchy].CurrentMember.Level.Members}.Item(0):[DimFirstPayDate].[First Pay Date Hierarchy].CurrentMember}
*
{{[DimAsAtDate].[As At Date Hierarchy].CurrentMember.Level.Members}.Item(0):[DimAsAtDate].[As At Date Hierarchy].CurrentMember}
*
{{[DimContractFlagsByPeriod].[Period FPD].CurrentMember.Level.Members}.Item(0):[DimContractFlagsByPeriod].[Period FPD].CurrentMember}
, [Measures].[Loan])



I.W Coetzer

Create a calculated set using combinations of existing dimension members

$
0
0

I have an MDX query that creates a calculated measure based on values in 2 dimensions: 

With
member measures.[CustomGrouping]
As
Case When [Location].[City].currentmember.member_name = "Location1" and [Grade].[Grade].currentmember.member_name = "1" Then "Group1"
When [Location].[City].currentmember.member_name = "Location1" and [Grade].[Grade].currentmember.member_name = "2" Then "Group1"
When [Location].[City].currentmember.member_name = "Location1" and [Grade].[Grade].currentmember.member_name = "3" Then "Group2"
When [Location].[City].currentmember.member_name = "Location2" and [Grade].[Grade].currentmember.member_name = "1" Then "Group2"
When [Location].[City].currentmember.member_name = "Location2" and [Grade].[Grade].currentmember.member_name = "2" Then "Group3"
When [Location].[City].currentmember.member_name = "Location3" and [Grade].[Grade].currentmember.member_name = "1" Then "Group1"
When [Location].[City].currentmember.member_name = "Location3" and [Grade].[Grade].currentmember.member_name = "2" Then "Group3"
Else "UnknownGrouping" End

Select {
measures.[CustomGrouping],
measures.[Cost]
} on 0,
[Location].[City].[All].Children *
[Grade].[Grade].[All].Children
Having measures.[Cost] <> 0
on 1
From MyCube

and then using SSRS I group all the results so I end up with the Total cost per CustomGrouping. Is there a way I can do this grouping inside the MDX query and not reporting services?
I was thinking of some kind of calculated set like (obviously this is incorrect):

 With
set CustomGroupingSet
As
Case When [Location].[City].currentmember.member_name = "Location1" and [Grade].[Grade].currentmember.member_name = "1" Then "Group1"
When [Location].[City].currentmember.member_name = "Location1" and [Grade].[Grade].currentmember.member_name = "2" Then "Group1"
When [Location].[City].currentmember.member_name = "Location1" and [Grade].[Grade].currentmember.member_name = "3" Then "Group2"
When [Location].[City].currentmember.member_name = "Location2" and [Grade].[Grade].currentmember.member_name = "1" Then "Group2"
When [Location].[City].currentmember.member_name = "Location2" and [Grade].[Grade].currentmember.member_name = "2" Then "Group3"
When [Location].[City].currentmember.member_name = "Location3" and [Grade].[Grade].currentmember.member_name = "1" Then "Group1"
When [Location].[City].currentmember.member_name = "Location3" and [Grade].[Grade].currentmember.member_name = "2" Then "Group3"
Else "UnknownGrouping" End

Select {
measures.[Cost]
} on 0,
CustomGroupingSet
Having measures.[Cost] <> 0
on 1
From MyCube

Is this possible?

Processing partition issue SSAS

$
0
0

Hi there,

I have a quick Question if you can help me please.

I have created one package to process list of the partitions which are for one of the cube.

As I have been keeping list of partitions in the control table and sending one by one to DDL Task to process each partition.

I noticed that when partition is processed the related dimensions also processed.

My Questions is what will happen partitions are processing ? while partitions are processing the related dimensions also will process? If Yes what type of process will happen to dimensions (process update or full process or does it bring new records too) ?

Please let me know your thoughts

Thanks in advance 

Cheers

SSAS 2012 - Find Partition used by MDX in SQL Profiler

$
0
0

Hello Expert ,

I am working on SSAS 2012 Cube , Cube is developed with Few Measure group and Dimension.
I have partitioned the Measure group Year Wise from Year 2010 to 2015, Partition Example Revenue_2010.

When I run below Queries, I want to trace from SQL Profiler if correct partition is HIT 

SELECT [Measures].[Amount] ON 0 ,
[Date].[FYYear].&[2014] ON 1
FROM [MY_cube]

I have connected to SSAS Instance from Profiler , Filtered by DataBase Name and Selected ALL EVENTS and ALL COUMNS .

BUT I DO NOT SEE ANY PARTITION NAME in any of the Event and Column, How can I be sure if Correct partition is used ??

TopCount issue

$
0
0
Hi,

I want to have the reseller sales amount for the most selled product on years 2001 to 2004,
I am getting null result with bellow query

with member [Top sales product] as
{
topcount(
[Product].[Product].[Product].members,
1,
[Measures].[Reseller Sales Amount]
)
} .Item(0)


select
{
Measures.[Top sales product]
} on columns,
{
[Date].[Calendar Year].&[2001],
[Date].[Calendar Year].&[2002],
[Date].[Calendar Year].&[2003],
[Date].[Calendar Year].&[2004]
} on rows

from
[Step-by-Step]

 

How to get fact records based on multiple values from the same Dimension.

$
0
0
Suppose I have a Games dimension that has id and the name of the games(football,golf,volleyball etc) and a CustomerDim(id, customername). I have a many to many bridge table that maps the games and the customer mappings. My requirement is Find out the customers who play both Football and Golf

SSAS Tabular Security on specific field rather than row level

$
0
0

I have a requirement to secure a specific set of fields in a tabular cube.  For example, there is HR data that contains an employee dimension with the employee's name, username, employee ID, hire date, salary, and salary range min, salary range max.  Based on a security role, I need to hide the salary fields.  I don't want to filter the data so the user can't see anything about the employee (they should still be able to see the employee name, hire date, username, etc.).  I just want the user to be unable to access those salary fields.  I will have another role that can see the salary fields. I know cubes work on row or table level security.  But is there a way to accomplish this? Can I move those fields into another table to somehow make this work?



Invalid column name '[O02_Date].[THMD10 YEAR R].[THMD10 YEAR R].[MEMBER_CAPTION]'.

$
0
0
SELECTHASHBYTES('MD5', 

CAST(agg.Yr as varchar) + 

RIGHT('0' + CAST(agg.Mth as varchar), 2) +

agg.Mkt +

COALESCE(agg.Position, '-') +

COALESCE(agg.Agent, '-') +

COALESCE(CAST(agg.rsn AS varchar(8)), '-')) AS HashKey,



agg.Yr AS Report_Year,

agg.Mth AS Report_Month,

agg.Mkt AS Market,

agg.Position,

agg.Agent,

agg.RSN,

SUM( agg.Closed_SR_Count ) AS Closed_SR_Count,

SUM( agg.Code_Excl_Critic_Count ) AS Code_Excl_Critic_Count ,

SUM( agg.Code_Excl_GE_Count ) AS Code_Excl_GE_Count,

SUM( agg.Code_Excl_Legal_Count ) AS Code_Excl_Legal_Count,

SUM( agg.Code_Excl_Mktg_Count ) AS Code_Excl_Mktg_Count ,

SUM( agg.Code_Excl_RAV_Count ) AS Code_Excl_RAV_Count,

SUM( agg.Code_Excl_Redir_Count ) AS Code_Excl_Redir_Count,

SUM( agg.Cust_Already_Surveyed_Count ) AS Cust_Already_Surveyed_Count,

SUM( agg.Cust_Deceased_Goneaway_Count ) AS Cust_Deceased_Goneaway_Count,

SUM( agg.Cust_Not_Spec_Count ) AS Cust_Not_Spec_Count ,

SUM( agg.Inhibited_Count ) AS Inhibited_Count,

SUM( agg.No_Inbound_Contact_Count ) AS No_Inbound_Contact_Count,

SUM( agg.Other_Open_SR_Count ) AS Other_Open_SR_Count ,

SUM( agg.Selected_Count ) AS Selected_Count 



--INTO #SR_SVY_SUMM_TMP

FROM

-- OpenQuery OLAP call

(SELECT CAST(CONVERT(varchar(4),"[O02_Date].[THMD10 YEAR R].[THMD10 YEAR R].[MEMBER_CAPTION]") AS int) AS Yr,

CAST(CONVERT(varchar(2),"[O02_Date].[THMD10 MONTH R].[THMD10 MONTH R].[MEMBER_CAPTION]") AS int) AS Mth,

CAST("[O02_Business Unit].[THMD03 MARKET N].[THMD03 MARKET N].[MEMBER_CAPTION]" AS nvarchar(50)) AS Mkt,

CAST("[O02_Business Unit].[THMD03 POSITION N].[THMD03 POSITION N].[MEMBER_CAPTION]" As nvarchar(100)) As Position,

CAST("[O02_Business Unit].[THMD03 LOGON D].[THMD03 LOGON D].[MEMBER_CAPTION]" AS nvarchar(50)) AS Agent, 

CAST(CONVERT(varchar(8),"[O02_Business Unit].[THMD03 RSN K].[THMD03 RSN K].[MEMBER_CAPTION]") AS int) AS RSN,

CAST("[Measures].[Closed SR Count]" AS int) AS Closed_SR_Count,

CAST("[Measures].[Code Excl Critic Count]" AS int) AS Code_Excl_Critic_Count,

CAST("[Measures].[Code Excl GE Count]" AS int) AS Code_Excl_GE_Count,

CAST("[Measures].[Code Excl Legal Count]" AS int) AS Code_Excl_Legal_Count,

CAST("[Measures].[Code Excl Mktg Count]" AS int) AS Code_Excl_Mktg_Count,

CAST("[Measures].[Code Excl RAV Count]" AS int) AS Code_Excl_RAV_Count,

CAST("[Measures].[Code Excl Redir Count]" AS int) AS Code_Excl_Redir_Count,

CAST("[Measures].[Cust Already Surveyed Count]" AS int) AS Cust_Already_Surveyed_Count,

CAST("[Measures].[Cust Deceased Goneaway Count]" AS int) AS Cust_Deceased_Goneaway_Count,

CAST("[Measures].[Cust Not Spec Count]" AS int) AS Cust_Not_Spec_Count,

CAST("[Measures].[Inhibited Count]" AS int) AS Inhibited_Count,

CAST("[Measures].[No Inbound Contact Count]" AS int) AS No_Inbound_Contact_Count,

CAST("[Measures].[Other Open SR Count]" AS int) AS Other_Open_SR_Count,

CAST("[Measures].[Selected Count]" AS int) AS Selected_Count



FROM OPENQUERY(THEMISOLAPDEV,

'WITH

SET setYears AS EXCEPT( {[O02_Date].[THMD10 YEAR R].CHILDREN}, {[O02_Date].[THMD10 YEAR R].UNKNOWNMEMBER})

SET setMkts AS EXCEPT( {[O02_Business Unit].[THMD03 MARKET N].CHILDREN}, {[O02_Business Unit].[THMD03 MARKET N].UNKNOWNMEMBER})

SELECT 

{[Measures].[Closed SR Count],

[Measures].[Code Excl Critic Count],

[Measures].[Code Excl GE Count],

[Measures].[Code Excl Legal Count],

[Measures].[Code Excl Mktg Count],

[Measures].[Code Excl RAV Count],

[Measures].[Code Excl Redir Count],

[Measures].[Cust Already Surveyed Count],

[Measures].[Cust Deceased Goneaway Count],

[Measures].[Cust Not Spec Count],

[Measures].[Inhibited Count],

[Measures].[No Inbound Contact Count],

[Measures].[Other Open SR Count],

[Measures].[Selected Count]} ON 0,

NON EMPTY (

setYears,

[O02_Date].[THMD10 MONTH R].CHILDREN,

setMkts,

[O02_Business Unit].[THMD03 POSITION N].CHILDREN,

[O02_Business Unit].[THMD03 LOGON D].CHILDREN,

[O02_Business Unit].[THMD03 RSN K].CHILDREN) ON 1

FROM [MTHMO02_SR_SURVEY]'))  AS agg

GROUP BY agg.Yr, agg.Mth, agg.Mkt, agg.Position, agg.Agent, agg.RSN WITH ROLLUP

HAVING (agg.Yr IS NOT NULL AND agg.Mth IS NOT NULL AND agg.Mkt IS NOT NULL)

sanjeetbidhuri

SSAS Calculation-Help needed

$
0
0

In cube, We have two fact tables named Goaldata and Actualdata and a Time dimension along with other dimensions. In Goaldata table, we have data till 2016 December and in Actualdata table we have data till 2016 June(current month) and for some products we have data till may 2016 only.

Since Goaldata table has data till December, The time dimension also have an entries till December 2016. For rolling 6 months calculation on Actualdata table, If I use Bottomcount function it’s pulling the data from December 2016 which will be blank value. To avoid that, We used Nonempty function along with bottomcount.

This logic worked well for the data which has values till June 2016.  If the data is till May 2016, our logic takes rolling 6 months from May but we want it to take from June 2016 irrespective of whether we have data or not in any of the months. Also, If any of the of the middle months don’t have data then it’s ignoring that month and taking another month value(basically it takes 6 months which has data)

(AVG(BOTTOMCOUNT(NONEMPTY([Time].[Hierarchy].[Year Month].members,[Measures].[Measure name]),6),(([Measures].[Measure name])))

Please do the needful

Using a Set in a calculated member

$
0
0

I'm trying to use a set called [Judy Set] in a calculated member.  I'm wanting to filter and use in the calculation only those customers where ROE >= .12  or 12 %

[Judy Set] is defined as: 

{FILTER([Customer].[Customer Number].[Customer Number].members,[Measures].[Return on Equity] >= .12)}

I tried this calculated member definition:

I'm not sure what I've got wrong here.  Any ideas would be appreciated/


J. Way

can not find default member (Dimension,Attribute) in cube

$
0
0

Hey!

I have a problem in processing a cube.

I get the following error and have no idea why the cube can't find the "all"-element.

"DefaultMember (<Dimension>,<Attribute>) (1,1) The [All]-Element can't be found by analyzing the string '[Dimension].[Attribute].[All]' in the cube."

I have set the property IsAggregatable to True. I also added the following MDX-Expression

ALTER CUBE CurrentCube | YourCubeName UPDATE DIMENSION <dimension name>, DEFAULT_MEMBER='<default member>'; in my calculations

because i am using the dimension 3 times with different names in the cube.

Does anybody have a suggestion how to solve this problem?


Viewing all 14337 articles
Browse latest View live


<script src="https://jsc.adskeeper.com/r/s/rssing.com.1596347.js" async> </script>