Sharing my daily SQL and BI challenges, tips and tricks.
Thursday, February 17, 2011
Start and End Date of specific date.
SET @Date = '02/17/2011' ------- Your Date
SET @Start = DATEADD(dd, 1, DATEADD(dd, -DATEPART(dd, @Date), @Date))
SET @End = DATEADD(dd, -1, DATEADD(mm, 1, @Start))
SELECT @Start AS [Start Date], @End AS [End Date]
Tuesday, February 15, 2011
Date and Time dimension creation and population T-SQL
It's by Joshua A. Walker
The script is http://www.sqlservercentral.com/scripts/Data+Warehousing/65762/...
Monday, February 14, 2011
The end of my SSRS "NaN" misery! Avoid SSRS "NaN"....
I always had problems with that annoying “NaN” in SSRS, I used to run around it using IIF or REPLACE and ROUND, but finally I decided not to give up and find a neater solution for that particular report.
Reading more about the IIF function @ http://msdn.microsoft.com/en-us/library/27ydhh0d%28vs.71%29.aspx
At the remarks section, they say “The expressions in the argument list can include function calls. As part of preparing the argument list for the call to IIf, the Visual Basic compiler calls every function in every expression. This means that you cannot rely on a particular function not being called if the other argument is selected by Expression.”
Anyway to cut my story short, if you have a function like:
=IIF(Lookup(Fields!ADM_DR_ID.Value, Fields!ADM_DR_ID.Value, Fields!ID2010.Value, "LOS") = nothing, "0" , Lookup(Fields!ADM_DR_ID.Value, Fields!ADM_DR_ID.Value, Fields!ID2010.Value, "LOS"))
It’s not going to work.
The right way is to avoid dividing by zero!
=IIF(Fields!ID2010.Value = 0, "0" , Lookup(Fields!ADM_DR_ID.Value, Fields!ADM_DR_ID.Value, Fields!ID2010.Value, "LOS"))
Hope that helps someone!