Get Period N data in MDX...

In some scenarios, we may need to get Period N data including the current period.
As an example if we select the Year as 2017, we may need to get the values for 2017, 2016, 2015, .., (2017-(n-1)).

I was able to achieve it using the below MDX Query

WITH
SET [Set_PeriodRange] AS
{STRTOMEMBER(@Param_Period+".lag(N-1))" : STRTOMEMBER(@Param_Period)}

SELECT NON EMPTY{[Measures].[Sales]} ON COLUMNS,
NON EMPTY([Set_PeriodRange]) ON ROWS 
FROM [SalesCube]

Here what I did was I created a set for the what ever the required period range, using the lag function.
Then use that Set for the Row axis in the MDX.
@Param_Period is the parameter with the Year value.

The use of the created Set is that if you pass the parameter value based on a hierarchy, it will return the members for the current level of the hierarchy.
If the current level is Quarter, it will return the N number of Quarters.

Hope this will be helpful...


Hide SSRS Report Items while exporting...

While exporting to PDF, EXCEL or any other format in SSRS report, we may need to hide some images or some contents of the report.
We can set the Visibility of that report content using the below expression for the "Show or hide based on an expression" option

=IIF(Globals!RenderFormat.Name="EXCEL" OR Globals!RenderFormat.Name="PDF", true, false)

Here I just set the visibility for EXCEL and PDF format only, but you can add other formats as well.

Also please note the if it is not working for render format value as "EXCEL", check it with Globals!RenderFormat.Name="EXCELOPENXML"

How to get the Last Month value of a Measure for a Period in MDX...

There was a requirement to show only the last month value for a particular measure, for the given period.
If the period is 2016, then it show the measure value of the 2016 Dec.
If the period is 2016 Q3, then the measure value has to be 2016 Sep.

I was able to achieve it, by creating a calculated measure using ClosingPeriod function.

Formula of the Calculated Measure is as below

(ClosingPeriod([DimDate].[Year-Quarter-Month].[Month], [DimDate].[Year-Quarter-Month].CurrentMember),[Measures].[Count])

You can test it using the below MDX Query as well.

WITH MEMBER [Measures].[LastMonthValue]
AS (ClosingPeriod([DimDate].[Year-Quarter-Month].[Month], [DimDate].[Year-Quarter-Month].CurrentMember),[Measures].[Count])

SELECT NON EMPTY { [Measures].[LastMonthValue] } ON COLUMNS
 FROM [CubeName]
WHERE STRTOSET(@Period,CONSTRAINED)

Hope this will be helpful...

We couldn't complete the updates, Undoing changes in Windows 10...

I was facing the issue while restarting my laptop with Windows 10 as "We couldn't complete the updates, Undoing changes..".
I tried some of the options available in internet, but I was able to finally fix it by using the "Fix problems with Windows Update", troubleshoot option available in Windows 10.

You can do it using the below steps.

Go to the Control Panel and click on the "Find and fix problems" under "System and Security"

Then click on the "Fix problems with Windows Update" under "System and Security".

It will guide you to identify and fix the problems with the windows updates. This works for me and hope it will be useful for you as well.



Split comma separated values in a column to multiple columns in SQL...

In this post I am sharing how to split comma separated values in a column to multiple column in SQL.
In this case, we have a table with two columns. One is with the Code and the other column with the seven number values separated by a comma as Numbers

Code           Numbers
A                10,2,55,5,67,11,45
C                1,32,5,15,7,71,35
--                 ---------------------

The expected output is as below

Code          V1  V2  V3  V4  V5  V6  V7
A                10     2   55    5    67  11   45
C                   1   32    5   15     7   71  35


It can be achieved by using the below query.

SELECT Code, [1] AS [V1],[2] AS [V2],[3] AS [V3],[4] AS [V4],[5] AS [V5],[6] AS [V6],[7] AS [V7]
FROM (
    SELECT *, ROW_NUMBER() OVER (PARTITION BY [Code] ORDER BY (SELECT  null)) as rn
FROM (
    SELECT [Code], [Numbers]
    FROM [SampleTable]
) as a
CROSS APPLY string_split([Numbers],',')
) as SourceTable
PIVOT
(
    MAX([value])
    FOR rn IN ([1],[2],[3],[4],[5],[6],[7])
)as pivotTable

Hope this will be helpful...

Download SQL Server 2016 Developer edition for free...

Use the below link to download SQL Server 2016 Developer edition for free

https://www.microsoft.com/en-us/cloud-platform/sql-server-editions-developers

Also under the Subscription, you can download the some other useful software as shown in the below image, under the Visual Studio Dev Essentials subscription.


Hope this will be helpful.

#Error while showing DateTime field with Blank or Space in a SSRS Report...

In a SSRS Report, DataSet returns a column which contains datetime values in string data type.
Due to that it contains values with spaces or blank. Let assume the particular field name is "DateValueField".
To show that in the SSRS Report, initially the below expression is used.

=IIf(IsNothing(Fields!DateValueField.Value) OR LTRIM(RTRIM(Fields!DateValueField.Value))="", "", FormatDateTime(Fields!DateValueField.Value, DateFormat.ShortDate))

Eventhough the above expression seems to be correct, when we ran the report, it gives the value as #Error for the rows which contains Blank or Space for the DateValueField.
But it gives the correct value for the rows which contains a valid datetime value.

Actually the issue exists with SSRS IIF expression and to overcome that, we have to modify the IIF expression as below.

=IIf(IsNothing(Fields!DateValueField.Value) OR LTRIM(RTRIM(Fields!DateValueField.Value))="", "", FormatDateTime(IIf(IsNothing(Fields!DateValueField.Value) OR LTRIM(RTRIM(Fields!DateValueField.Value))="", Nothing,Fields!DateValueField.Value), DateFormat.ShortDate))

There may be other situations that the same issue may occur while using IIF expressions.

tablename_WriteToDataDestination: Mashup Exception Data Source Error Couldn't refresh the entity...

 Once a Dataflow is created and published on Fabric, got the below error while refreshing the Dataflow. tablename_ WriteToDataDestination: M...