SSRS Dataset for KPI, multiple calculations - reporting-services

I am trying to setup a KPI that indicates the total of something in the data set used for the trend data.
In this case the KPI can't seem to display a Sum'ed or Max'ed value, you have to do that action in the dataset query. I already have the data that reports the totals for each day to populate the bargraph graphic on the KPI, and it seems very wasteful to be required to create the exact same dataset again, only changing SELECT DayTotal FROM Table to SELECT SUM(DayTotal) FROM Table
Is there a way to have this calculated dataset be based off of the initial dataset so that I don't have two effectively identical datasets to maintain?

Related

Getting SSRS to aggregate as rows instead of columns

I've constructed a cube using SSAS, and I'm using that cube to fuel an SSRS report. Using Excel, I can generate reports as pivot tables from the SSAS source, and I'm trying to replicate some of that functionality as a report in SSRS instead.
Here's how I have the thing set up in Excel:
As you can see from the pictures, I have several stats that are being displayed per row rather than per column. The results that are displayed per row are aggregated statistics (sum, count, etc...).
How do I accomplish this same thing using SSRS? In Excel, it was simply a question of saying "Move to Row Labels".
You can create a Matrix, set the column group to be by fiscal calendar .
Within the row group you will need to add additional detail rows and place each value on the row.
This should give you the desired results more of less.

Passing multiple values to subreport parameter - SSRS

I have a report that has 4 parameters:
Year - accepts a single value for a year - ex: 2020
Carrier Group - allows the user to select a single carrier grouping
Segment - allows the end user to select one or multiple business segments
Loss Cause - allows the end user to select one or multiple loss causes
And when I execute this report:
The report generates as expected - and I have the SSRS report set up so it creates a new tab in Excel when exported to separate the monthly totals vs the cumulative totals.
But the end users would like to be able to execute this report for multiple years to compare - so I have created a parent or main report - then I created a tablix and added the sub-report to be called - and created a row group based on the Year(s) selected.
My subreport parameters are as follows:
What I am ultimately hoping to accomplish is to pass in a single year plus the carrier group, segments and loss causes that were selected - and run the subreport for each of the years the user may select.
For example, if the user selects 2016, 2017, 2018 - the sub-report would need to be run 3 times to generate the totals for each of those years using the same parameters for carrier group, segment and loss cause.
I'm not sure what is happening but with the Year parameter as it: =Parameters!Year.Value(0) - the report looks like it keeps generating one year over and over:
I also tried using =JOIN(Parameters!Year.Value,",") but that did not seem to help either.
Anyone have experience on how to solve this type of issue? Thanks,
The easiest way to do this is to add a dataset to your main report that returns one row per year.
If you have a dates table or similar in your database then you could do something like
SELECT DISTINCT Year(myDateColumn) as [myYear]
FROM myDatesTable
WHERE Year(myDateColumn) IN (#Year)
If you don't have a date table then (other than suggesting you add one...) you could create one on the fly with something like
SELECT * FROM (
SELECT top 20
ROW_NUMBER() OVER(ORDER BY name) + 2000 as [myYear]
FROM sysobjects) o
WHERE myYear IN (#Year)
(adjust the top 20 and +2000 as required to get a range of years that covers all your potential data)
Now set the dataset property of the tablix in your main report to point to this new dataset.
In your subreport object's parameters, set the value for the Year parameter to the [myYear] field in your dataset by selecting it from the drop down or using =Fields!myYear.Value as the expression.
Now that the tablix is bound to the dataset, it will create one row for each record returned from the "dates" dataset, each row will have a different year which is passed to the subreport, so the subreport is called once for each row/year.

How to fetch data in a Single SSRS report using Multiple Dataset

I was trying to create SSRS report with a country map and a table. Country Map for showing total Number of Cases state wise and a table to show the total number of Cases in the whole country on the Top Middle side of the Report. Both (Map and Table) Using Different Datasets.
When I run the report to preview the data, It gives me an error:
The Endvalue expression for the map uses an aggregate expression without a scope. A Scope is required for all the aggregates used outside of a Data region
However, I have also tried to use the first dataset to calculate the Sum of all cases in the country.
But it shows the data in the table state wise not the Complete Sum.
=Sum(Fields!Total_Cases.Value)
I have read some issue similar to this topic but unable to implement them.
For displaying total cases in the table I have also mention the dataset name but not getting result.
=(Fields!Total_Cases.Value, "Dataset2")
Please suggest the correct way..

Dynamic graphs at ssrs

I need to develop report at SSRS include pie chart, that based on dataset (the dataset can change every day)
Can I make "dynamic pie" on report that change the number of graphs according to the dataset I define?
[A particular day can have 2 employees (2 pie graphs) and another day can have 5 or more employees (and therefore need 5 different graphs)]
For example:
This is the report that I need, based on this dataset
Requested report
My_Dataset
Thank!!
Yes, this is a brief overview of the main steps...
You will need two reports.
The first will be a subreport. So build a report that takes one or more parameters, based on your sample data the parameter would be Emp_Name. Build this report that it can handle a single employee only. The dataset might be something like SELECT * FROM myTable WHERE Emp_Name = #Emp_Name
Once that is complete, create a second report. Add a dataset that contains just a list of the employees so something like SELECT DISTINCT Emp_name FROM myTable ORDER BY Emp_Name
Add a list or table to this report and set the dataset to the dataset you just created. In the list (or table) right-click inside the cell and "insert => Subreport". Set the subreport to be the first report you created. and the parameter to be the EMp_Name field from your dataset.
When you run the seconds report it will create one row in the list for each employee in the dataset, inside each row it will run your subreport and pass the respective paramater.
That's it really.
Note that this will produce a vertical list but it should get you started. There are plenty of examples of how to arrange horizontally.

How do I get the tables in an SSRS report to use the data in a dataset without multiple trips to the database

I have a dataset which has the data to be used in by several tables in my 2012 SSRS report.
Each table uses a different set of rows in the dataset, i.e. where a particular column in the dataset has a particular value.
I would like to grab all the data to be used by all the tables in one go, and then have the tables use the dataset's data, filtering by this particular column.
Unfortunately, it looks like the report fetches data into the dataset every time each table needs to be populated.
Is there a way I can get the table to use the data that has already been fetched into the dataset without it making the report refetch data into the dataset?