Viewers: in countries Watching now:
Discover how to create, manage, and deliver interactive reports—not just to print, but to dynamically explore enterprise-level data—with Reporting Services in SQL Server. In this course, author Simon Allardice concentrates on using Report Builder to build and format reports from a variety of data sources, but also shows how to perform basic administration tasks such as granting user access and organizing reports in the Report Manager. Plus, learn how to add interactive sorting and filtering functionality to your reports, and create column and pie charts to better express your data.
Note: These tutorials are applicable to both the 2008 and 2012 versions of SQL Server.
Once you are familiar with creating charts in Reporting Services it's easy to add sparklines. Sparklines are mini charts, most commonly shown as small line charts, but they can be any small chart. They are intended to show very quick but easy-to-scan visual data. In Reporting Services you can add multiple kinds of sparklines. These can be added on their own. They are sometimes added along with text. Sometimes you'll use several together for a quick comparison, but they are also very commonly used embedded inside a table or a matrix.
These sparklines are shown without titles along the axis or without numbers along the axis, because we are not trying to get an accurate understanding of a particular data point. What they let us do is quickly see, is this flat and steady, is it volatile, is it trending up or is it trending down? So here's how we make them. I am in Report Builder and just to save some time, I've created a blank report with a data source pointing to the regular AdventureWorks database. All I've done apart from that is just change the title.
What I need is some data to work with, so I am going to add a new dataset. I'll call this SalesInfo, because that's what we're going to go for, and jump into the Query Designer. Drilling down into the Sales section, I am going to go into the SalesOrderHeader table, which has got the data that I am most interested in here. And I'll begin by selecting OrderDate and TotalDue. Run this query. That seems about the kind of data that I would expect. Now, I know that I am going to have to change this, because I've got a little bit too much data coming back, but let's just see the idea of creating a sparkline straight away. Click OK, click OK.
I am going to go to the Insert tab of the Ribbon, find the Sparkline option, click that once. Then my crosshairs will change on my mouse so I'll just drag it where I want to position it and let go. I get the window very similar to creating a chart asking what kind of sparkline or what type of sparkline do I want. I am going to select the Line option because I want to show growth or decline over time, and click OK. Just as with a chart, this is showing dummy data right now. There is no connection between this sparkline on my report and the dataset that I've defined here.
What I need to do is bring up the data options, very similar to a chart; in fact, it's really identical to a chart. If I click this again, I can get my Chart Data option. And again, just to show that if you've deselect it, you'll need to click it twice, click once and then again to bring up the Chart Data window, or if it's deselected, you can also right-click, which typically brings it up directly. This is the same Chart Data window that we'd see with a normal chart, because really a sparkline is a chart. So we need something for our values. We need something for our groups.
Typically, with a sparkline you don't have multiple series. That's just way too much data to show in a small amount of space. So the values is our numeric option. What is going up, what's going down? So I am going to select TotalDue, drop it into Values, and then the OrderDate is my groupings and drop that in there. I know I am going to have to change this, but let's just see why. First I run this and officially it works. We are getting a sparkline, but it's not what I was looking for. This looks more like a mini column chart and I was expecting a line chart.
It actually is a line chart. It's just too small to see that it's very volatile. It's going up and down a lot. Because I am just bringing back too many points of data. This is actually several years worth of daily sales, often dozens in a day. And that would be impossible to show on a regular chart, nevermind a sparkline. I need to get a better summary of this data, perhaps totaling sales grouped together by month or quarter. That would be a much better scale of data to show. So back into Design, I am going to drop into the dataset. If I jump into Query Designer I can see that when I run this query I am getting multiple orders for a particular date.
Now, I could start off by at least grouping the dates together, so selecting my TotalDue and saying I wanted to sum that and grouping by the other field, OrderDate. That will now give me one amount per day, but that's still too many data points. I really need to start grouping these together by month. Now, to do that, the best way to do it is to edit this as text. We really can't get that level of detail in the Query Designer visual section. In the SELECT part of the statement I am no longer interested in the OrderDate.
I really just want to know the year and the month, and I am going to get those separately by using the Year and Month functions in my SQL. I will just use a constructed column name so they come back as order year and order month. And below, in the GROUP BY, I want to group them together by year and month. I can't just group together by month, because if I select a month, it'd start combining all the sales for January 2005 and January 2006 and January 2007, so I need the year as well as the month.
Same thing. I am going to add an ORDER BY. I don't technically need to do that, but this will allow me to run this query and get an idea of whether this seems to be what we're looking for. So go ahead and now we are getting the OrderYear, OrderMonth, and the summed- together TotalDue of all those orders. And this will be a much smaller amount of data, much better to represent in a sparkline. So I am going to click OK and click OK. I could edit the existing sparkline, but just to give us some more practice, I am going to delete it and edit again.
Up to the Insert tab. Click once on Sparkline, draw the sparkline that you want, let go. I am going to select the first Line chart option. Click OK. Clicking the sparkline until I get my chart data section up. I am going to open up my dataset. The Values is still going to be the Sum_TotalDue. Do be careful when you are dragging from the report data region into chart data. It's easy to mix up if you drag over the top of another element. It can confuse Report Builder. So I let go in Values, and then in my category groups what I am going to do is first drag over OrderYear and then drag over OrderMonth. So we'll be grouping in two sections, year, and within year, each month, and that should do it.
We go ahead and run this. That looks a lot more realistic. Now, what I am seeing at the end here is that the last months of sale is actually aren't a full month, so it's dropping off very suddenly at the end. If that was an issue I might want to filter the data so we only had complete months, but this looks about right. Now, this is a standalone sparkline. You probably want a text box beside this with some kind of label so people can actually tell what it represents. But it's also very, very common to take these and embed them inside a table or matrix.
Let's see that next.
There are currently no FAQs about SQL Server Reporting Services in Depth.
Access exercise files from a button right under the course name.
Search within course videos and transcripts, and jump right to the results.
Remove icons showing you already watched videos if you want to start over.
Make the video wide, narrow, full-screen, or pop the player out of the page into its own window.
Click on text in the transcript to jump to that spot in the video. As the video plays, the relevant spot in the transcript will be highlighted.