Showing posts with label Mod. Show all posts
Showing posts with label Mod. Show all posts
Tuesday, 6 May 2014
Green bar for a group header - SSRS
=IIF(RunningValue(Fields!xxx.Value,COUNTDISTINCT,NOTHING) MOD 2 = 1,
"White","PaleGreen")
=iif(RunningValue(Fields!xxx. Value,CountDistinct,"parentgroupname") Mod 2,"WhiteSmoke","White")
Tuesday, 20 November 2012
Convert time to string - SQL
Scenario where a db field contains seconds, the user wanted a SSRS report displaying various aggregates of the seconds field as Hours - Minutes - Seconds.
IFOBJECT_ID('dbo.udf_SCC_TimeToString') IS NOT NULL
DROP FUNCTION dbo.udf_SCC_TimeToString ;
GO
CREATEFUNCTION dbo.udf_SCC_TimeToString
(
@timesec INT) --input in seconds as integer
RETURNSVARCHAR(25)
/*==========================================
Dom Horton
17/10/2012
==========================================*/
AS
BEGIN
DECLARE
@return
AS VARCHAR(25),
@a AS INT,
@b AS INT,
@hours AS INT,
@mins AS INT,
@secs AS INT;
SET@a = @timesec%3600 --get no. of seconds over the hour
SET@hours = (@timesec - @a)/3600 --get no. of seconds of completed hours, divide by hour in seconds to get completed hours
SET@b = @a --hold no. of secs over the hour
SET@a = @b%60--get no. of secs over the min
SET@mins = (@b - @a)/60 --get no. of seconds of completed mins, divide by min in secs to get completed minutes
SET@secs = @a
SET@return =
CASE
WHEN @timesec >=3600
THEN
convert(varchar(10),@hours) + ' hr ' +
convert(varchar(10),@mins) + ' min ' +
convert(varchar(10),@secs) + ' sec '
WHEN @timesec >=60
THEN
convert(varchar(10),@mins) + ' min ' +
convert(varchar(10),@secs) + ' sec '
ELSE
convert(varchar(10),@secs) + ' sec '
END;
RETURN
@return
END
Example below showing the Stored Procedure in use:
and in use in a SSRS report:
IFOBJECT_ID('dbo.udf_SCC_TimeToString') IS NOT NULL
DROP FUNCTION dbo.udf_SCC_TimeToString ;
GO
CREATEFUNCTION dbo.udf_SCC_TimeToString
(
@timesec INT) --input in seconds as integer
RETURNSVARCHAR(25)
/*==========================================
Dom Horton
17/10/2012
==========================================*/
AS
BEGIN
DECLARE
@return
AS VARCHAR(25),
@a AS INT,
@b AS INT,
@hours AS INT,
@mins AS INT,
@secs AS INT;
SET@a = @timesec%3600 --get no. of seconds over the hour
SET@hours = (@timesec - @a)/3600 --get no. of seconds of completed hours, divide by hour in seconds to get completed hours
SET@b = @a --hold no. of secs over the hour
SET@a = @b%60--get no. of secs over the min
SET@mins = (@b - @a)/60 --get no. of seconds of completed mins, divide by min in secs to get completed minutes
SET@secs = @a
SET@return =
CASE
WHEN @timesec >=3600
THEN
convert(varchar(10),@hours) + ' hr ' +
convert(varchar(10),@mins) + ' min ' +
convert(varchar(10),@secs) + ' sec '
WHEN @timesec >=60
THEN
convert(varchar(10),@mins) + ' min ' +
convert(varchar(10),@secs) + ' sec '
ELSE
convert(varchar(10),@secs) + ' sec '
END;
RETURN
@return
END
Example below showing the Stored Procedure in use:
and in use in a SSRS report:
Labels:
Convert time to string,
Date and Time,
Datepart,
Mod,
Modular,
SQL,
SSRS,
Stored Procedures,
String,
Time,
Time to String
Wednesday, 8 August 2012
Useful SSRS expression syntax
=IIF(Fields!a.value>100, True, False)
--------------------------------------------------------
=IIF(Fields!a.value >=10, "Green", IIF(Fields!a.value >=1, "Blue", "Red"))
values >=10 are green, between 1 & 9 are blue, less than 1 are red
--------------------------------------------------------
=SWITCH(
Fields!a.value >=10, "green",
Fields!a.value >=1, "blue",
Fields!a.value = 1, "yellow",
Fields!a.value <=0, "Red")
>=10 are green, between 1 & 9 blue, =1 yellow, <=0 red
--------------------------------------------------------
SWITCH function finds the first expression that's true. It will not catch errors further along.
IIF function evaluates all parts of the expression.
--------------------------------------------------------
=IIF(Rownumber("scope") Mod 2 = 0, "Khaki", "White")
set "scope" to reset row colours for every group
--------------------------------------------------------
--------------------------------------------------------
=IIF(Fields!a.value >=10, "Green", IIF(Fields!a.value >=1, "Blue", "Red"))
values >=10 are green, between 1 & 9 are blue, less than 1 are red
--------------------------------------------------------
=SWITCH(
Fields!a.value >=10, "green",
Fields!a.value >=1, "blue",
Fields!a.value = 1, "yellow",
Fields!a.value <=0, "Red")
>=10 are green, between 1 & 9 blue, =1 yellow, <=0 red
--------------------------------------------------------
SWITCH function finds the first expression that's true. It will not catch errors further along.
IIF function evaluates all parts of the expression.
--------------------------------------------------------
=IIF(Rownumber("scope") Mod 2 = 0, "Khaki", "White")
set "scope" to reset row colours for every group
--------------------------------------------------------
Friday, 21 August 2009
Green bar report - CR
If(RecordNumber Mod 2=0)
then crGreen
else DefaultAttribute
Note: Record Number can be replaced with GroupNumber to alternate Group row colours
then crGreen
else DefaultAttribute
Note: Record Number can be replaced with GroupNumber to alternate Group row colours
Labels:
Alternate rows,
CR,
Green bar,
GroupNumber,
If,
Mod
Thursday, 20 August 2009
Subscribe to:
Posts (Atom)