I have the following ssrs matrix that I am building :
Month(Column)
Sales(Rows) SalesData (Data)
My data looks something like this :
Jan Feb March
Sales 10 3 9
What I would like to do now is to find the difference between each of the rows to show
something like :
Jan Feb March
Sales 10 3 9
#change -7 6
In an ssrs table its a simple expression .
I do not know how I need to do it in a matrix since the Months Columns are generated dynamically
Please direct me..
Just wanted to add this to clarify :
This is how my matrix looks
Month(Column)
Sales(Rows) SalesData (Data)
If you right click on the row group and put 'Add Total'
After
Then click on the area that they up the Total for you.
In the value section add an expression like: Fields!YourOtherFieldToCalculate.Value - Fields!YourFieldToCalculate.Value
If you are dealing with the same values you could add this
ReportItems!SomeTextBox.Value - ReportItems!SomeOtherTextBox.Value
(though I think you would have to add it into the footer)
With your new clarification I would go with Sam's use of Previous: though I would have used but his checks for nulls which is a good thing!
=Fields!Column.Value - Previous(Fields!Column.Value)
Related
Activity
Employee
Week of May 17
Week of May 24
Inbox
Alice
3
4
Inbox
Jane
5
8
Alpha Project
Alice
10
3
Beta Project
Francis
7
5
Chi Project
Jane
4
3
I've attempted to use conditional formatting, arrays & Vlookups and unable to cleanly get the following end result.
The End result is to flag anybody working > 10 hours for a given week.
Table is above.
End result should change the color of a cell titled "Alice" outside of this table because Alice worked 13 hours during Week of May 17.
End result should change the color of a cell titled "Jane" outside of this table because Jane worked 11 hours during Week of May 24.
Francis worked 10 hours or below, so no action is needed.
Any help on this is much appreciated --
Create a condition with the following formula:
=SUMIF(B2:B6,F2,C2:C6)>10
Where B2:B6 is the column of Employee names, F2 is the cell you want coloured, and C2:C6 is the column of the May 17th week
I would be grateful for your help on the below.
I have two tables as per the image below, one on the left and one on the right.
Each row in the left table has "Genre" & "Age Years". Under the years 2020 to 2024 I want to pull in the % from the right had side table. There are two values it has to be equal to, the correct genre and be within the correct Age Years range.
Therefore if it was TV and Age Years was 3 it would return 10% but if it was TV and 4 years old it would return 3%
I have tried Vlookup and Index Match with little success.
If I understand correctly and in columns from 2020 to 2024 should have the same value for each genre and age, then it is enough to combine the HLOOKUP and MATCH functions in the array formula:
{=HLOOKUP($B2;$M$1:$Y$6;MATCH(1;--($A2=$L$2:$L$6);0)+1;TRUE)}
Array formula after editing is confirmed by pressing ctrl + shift + enter
I have created a matrix with the groupings below in SSRS 2008 R2 and SQL Server 2008 R2.
MembershipStatus has "New Enroll", "Term", "Active".
What I need to do is to add a row called "Other" to do the following calculation:
Last month new enroll + last month active – this month term – this month active
In the example below, it's
19,281 + 0 - 2,082 - 17,195 = 4
I've used temp tables and various combinations of APPLY to get the results I need in SQL, but due to the large number of parameter combinations, I really need to do it inside SSRS.
Should I just give up and code it in the CODE section of the report?
Any insight would be greatly appreciated.
Try using the ReportItems function. Each text box in SSRS will have unique name which can be found by selecting the respective text box and then checking the top most section in the properties window displayed on the right side.
Let's say your NEW ENROLL value for June is displayed in Textbox1, TERM FOR June in Textbox2, ACTIVE for June in Textbox3, NEW ENROLL FOR July in Textbox4, TERM for July in Textbox5, ACTIVE FOR July in Textbox6 and so on. Write the below expression for OTHER value for July as below:
=ReportItems!Textbox1.Value + ReportItems!Textbox3.Value - ReportItems!Textbox5.Value - ReportItems!Textbox6.Value
This formula will change based on the default naming by SSRS for the respective textboxes.
With the calculation provided, it only allows to do the calculation in the same month. The question is how to calculate numbers in the previous month against current month...
how could it be done?
I want something strange here. I've table names as EMP_INFO which contains few details of an employee (i.e. Name,Designation, JOIN_FROM, JOIN_TO). I am trying to figure out term for each employee on yearly basis. I've below types of data
EMP_ID EMP_DESIG JOIN_FROM JOIN_TO Query Result
1 Supervisor 01-05-11 30-04-13 Should Display
2 Supervisor 15-06-10 31-12-12 Should Display
3 Jobar 01-01-12 31-12-13 Should Display
4 SR Superior 01-12-11 31-12-15 Should Display
5 Supervisor 01-05-11 31-12-13 Should Display
6 Supervisor 01-05-11 31-12-13 Should Display
7 Supervisor 01-05-11 31-12-13 Should Display
8 Supervisor 01-02-12 15-06-13 Should Display
9 SR Superior 16-03-10 18-11-11 Should Display
10 SR Superior 16-06-05 18-11-11 Should Display
11 Jobar 30-11-11 31-12-13 Should Display
12 Superior 02-02-05 31-12-20 Should Display
13 Jobar 30-11-11 31-12-13 Should Display
14 Jobar 30-11-09 31-12-10 Should Not Display
Basically what i need is I have date range in my report and let's say From: "01-Jun-11" To "31-Dec-13". From above record set report should retrieve all records as all records contains this both dates.
I have tried by using BETWEEN syntax but i believe it will not work.
If anyone can help me in this than it would be appreciated.
Thanks in Advance.. And one more thing if this details is not enough to understand than let me know i will add more in details.
Modified
Query which I tried
SELECT EI.*
FROM EMP_INFO EI,
(SELECT
TO_DATE('01-JUN-2011','DD-MON-YYYY') A,
TO_DATE('31-DEC-2013','DD-MON-YYYY') B FROM DUAL) X
WHERE
(EI.JOIN_FROM IS NOT NULL AND EI.JOIN_TO IS NOT NULL)
AND (
X.A BETWEEN EI.JOIN_FROM AND EI.JOIN_TO
AND X.B BETWEEN EI.JOIN_FROM AND EI.JOIN_TO
OR (EI.JOIN_FROM >= X.B AND EI.JOIN_TO <=X.A) )
Modified Added column (Query Result) on above table which contains result for each record.
So you simply want all records where the join time is in the given time range? That would be:
SELECT *
FROM EMP_INFO
WHERE JOIN_FROM BETWEEN
TO_DATE('01-JUN-2011','DD-MON-YYYY', 'NLS_DATE_LANGUAGE=AMERICAN') AND
TO_DATE('31-DEC-2013','DD-MON-YYYY', 'NLS_DATE_LANGUAGE=AMERICAN')
AND JOIN_TO BETWEEN
TO_DATE('01-JUN-2011','DD-MON-YYYY', 'NLS_DATE_LANGUAGE=AMERICAN') AND
TO_DATE('31-DEC-2013','DD-MON-YYYY', 'NLS_DATE_LANGUAGE=AMERICAN');
EDIT: Sorry, I got it now. You are looking for all time ranges that overlap with the given range. That would be: ranges that start before and end within, ranges that start before and end after, ranges that start within and end within and ranges that start within and end after. Another way to express this is: Either the given time range start is within the other time range or the other time range start is within the given time range. Here is the according statement:
SELECT *
FROM EMP_INFO
WHERE JOIN_FROM BETWEEN
TO_DATE('01-JUN-2011','DD-MON-YYYY', 'NLS_DATE_LANGUAGE=AMERICAN') AND
TO_DATE('31-DEC-2013','DD-MON-YYYY', 'NLS_DATE_LANGUAGE=AMERICAN')
OR TO_DATE('01-JUN-2011','DD-MON-YYYY', 'NLS_DATE_LANGUAGE=AMERICAN')
BETWEEN JOIN_FROM AND JOIN_TO;
And here is the SQL fiddle: http://sqlfiddle.com/#!4/b58b3/3
Convert to same format and compare. There may be a time component in the dates stored in database. Previous answer was wrong.
I'm building a report of case results with a parent-child grouping on the row group and single column grouping:
Parent Row Group: Location
Child Row Group: Result
Column Group: Month
Running across the report are months in the year, and running down the report are the location and the different result breakdowns for the location in the given month. Looks something like this:
Jan Feb Total
% # % # % #
Main Office
Pass ? 5 ? 6 55% 11
Fail ? 5 ? 4 45% 9
Total 10 10 20
Other Office
Pass ? 3 ? 2 25% 5
Fail ? 7 ? 8 75% 15
Total 10 10 20
I have everything working except for the percentage breakdowns as indicated by the question marks above. I can't seem to get that total (the 10 for each month/location set above) reflected into my expression caclulation. Any ideas on how to setup my groups and variables to properly render these percentages?
Here's my attempts so far:
Count(Fields!Result.Value, "dsResults") = 40
Count(Fields!Result.Value, "LocationRowGroup") = 20
Count(Fields!Result.Value, "ResultRowGroup") = 11 - (for the Main Office/January/Pass cell, which is the total for the whole year for that result)
Count(Fields!Result.Value, "MonthColumnGroup") = 20
SSRS gets the count correct on the total line right, so there must be a way to reproduce that scope within the data cells?
I sometimes work around annoying SSRS scope issues by pre-calculating my totals, subtotals and percentages. Take a look at this response (to a different post) for an example. I know it is unsatisfying, but it works: pre-calc values suggestion