Calculate the difference between two dates in DAX

Another quick Data Analysis eXpressions (DAX) update, given that I’ve been playing about with PowerPivot again this week.  Following on from my exertions trying to work out how to return a month name in DAX, I found myself looking for a DAX equivalent of SQL Server’s DATEDIFF function.  Fortunately, this is reasonably straightforward.  All we need to do is perform a regular subtraction on two dates and multiply the result by 1.0, which will return the number in serial date-time (the number of days since “1900-Jan-0”, which is how Excel stores dates). Continue reading…

Calculating Month Name from a Date Integer in DAX

I’ve been playing about with PowerView and PowerPivot recently, while also getting used to the Analysis Services (SSAS) Tabular model in  SQL Server 2012 (Denali).  The tabular model provides a high-compression, in-memory store for easy data model construction and analysis.  Ad-hoc calculated fields can be defined within PowerPivot (built on the same xVelocity technology) using Microsoft’s Data Analysis eXpressions language, which is very similar to Excel functions.  However, DAX is still pretty basic in some places, and while looking for a simple Month Name function (similar to the GetMonthName function in .NET) I ran into a couple of interesting issues. Continue reading…

Manchester City FC Analytics make OPTA data publicly available

MCFC Analytics and OPTA logoIn a move to stimulate the analytics community, Manchester City Football Club have teamed up with English Premier League statistics provider OPTAPro to release a full data set of Premier League players for the 2011-2012 season.  The MCFC Analytics project has been created to harness some of the amazing talent out there in the analytics community and provide fresh ways of analysing OPTA’s performance data. Continue reading…

Metadata Discovery in SSIS 2012 not working with temp tables

SQL Server Integration Services is a tidy bit of kit and an absolute must have on any SQL Server developer or administrator’s toolbelt.  However, it is as frustrating as it is sublime, with many obfuscated error messages, quirky behaviours and downright oddness.  I ran into one such quirk recently while setting up a Data Flow Task using an OLE DB Source that loaded its data from a Stored Procedure, specified by a package Variable.  Everything was working fine until I identified that I needed to do something in the stored procedure that resulted in my using a temporary table.  As soon as I updated the procedure and attempted to refresh the columns in my OLE DB Source, I was hit with the following error:

Msg 11525, Level 16, State 1, Procedure My_Stored_Procedure_Name, Line 1
The metadata could not be determined because statement ‘My SQL Statement Here;’ uses a temp table.

So why does this happen, even when I’ve defined the type of the column in my procedure? Continue reading…

SSRS My Subscriptions view

Subscriptions failing after migrating a Native mode SSRS Report Server database

I was recently involved with the migration of a Native mode SQL Server Reporting Services (SSRS) database from a non-domain server to a domain-based server.  The migration itself was fairly straightforward (as it usually is) thanks to the inherent portability of the Report Server database and required configurations, such as encryption keys and .NET config files.  However, after getting everything up and running on the new server, and successfully testing the reports manually, I discovered that the report Subscriptions were failing. Continue reading…