I am new to SQL Reporting. I have created a report(.rdl) file using SQL Server 2008 R2, SQL Server Business Intelligence Development Studio by using online help.
The report displays 2 fields. Student_Category and No. of Students.
Now, I am trying to sort the Student_Category by list box where the user can choose ‘All’ as well as group by individual ‘Student_Category’.
Any help given is appreciated. Please guide me through the steps
Thanks for your help in advance,
Ken.
while this suggestion is what I've done for 2005, and I'm not sure if 2008 makes it any easier, in 2005 what I would do is add an "All" row to my data set for the drop down with some unique key that the real data set couldn't have (like a GUID full of zeros). Then in my where clause of the SQL I'd have something like
((#StudentCategory = '{00000000-0000-0000-0000-000000000000}') OR (#StudentCategory = Student_Category))
When the value is "All" then the condition would be true without filtering records, and when that's false, the records would be filtered by the Student_Category.
Related
I have created a simple query which works in ssms but doesnt render the same result in Bids. The datasource is correct. See the query below with parameters created in Bids as well.
The reason i am using one table is because this data is only in one table. The reason for this query is because the data in the name fields are similar yet uniquely grouped by the way they were named. I hope i make sense.
select name, analysis from test_list_entry
where name like Left(#plant,3) + '%'
Assistance will appreciated.
thank you
I am trying work on a requirement using SSRS 2008 R2. The requirement is to create a detailed report which has main query(dataset1). And a column in this main query is used as a join or input to another query(dataset2).
I am trying to create a parameter and get the value for this from the main query or dataset1. How do I assign this parameter to dataset2? Also I will have similar situation to create dataset3, dataset4 etc and all this sub queries needs to be joined to dataset1.
Can you please help me what is the best way to do this?
In Dataset2, use a SQL variable in your query. SSRS will create a report parameter for you. Then go into this new report parameter and tell it that its available values should come from Dataset1.
Then repeat for the other datasets. :)
I'm trying to figure out if there is any vba way of sorting a report field in access 2003. I have this field that contains three different values " Estimated date", "Needs date" and "Date in"; what i need is for the field to be sorted first from A-Z and then by Date. If anyone knows how to do this in either VBA or access2003 please let me know I'm fairly new to access and vba so any help would be greatly appreciated.
For an Access report, use the report Group and Sort option to define your sort order. That option over-rides any sort order established by the ORDER BY clause in the report's record source query.
I don't recall exactly where that option is found in the Access 2003 user interface, but suspect you can track it down. Meanwhile be aware that Microsoft will discontinue support for Office 2003 in April 2014.
Here is a screenshot from Access 2007 which shows where the option is located on the ribbon interface.
Yes, go to the queries tab and create a new query based on your table and sort on those fields. Then modify your report to read data from the query and not directly from the table.
Is there an issue with SPLIT(JOIN()) functions in SSRS 2012?
Here's why I ask...
I've just set up an SSRS 2012 server. I have an existing report I built in SSRS 2008 R2, which pulls from a 2005 database. I created a new project in MVS 2010 and added the existing rdl.
When I preview the report, the performance is at least 5 times worse than it is when I preview it in MVS 2008. I ran a trace and found that it took quite a while for SSRS to even execute the SP. Once it did, it rendered quickly.
I was trying to think of something that might slow down the SP's execution. The only thing I came up with is that I have a lot of multi-valued parameters I pass into the SP using SPLIT(JOIN()) functions. Have those been replaced by something new in 2012? If not, I don't even know where to start looking for the problem. My initial google searches have turned up nothing.
Has anyone experienced this problem or know of a list of things that worked well in 2008 but not so well in the new version?
I hope this question isn't too vague. Thanks for reading!
EDIT: I feel silly. I just traced the 2008 report execution and it turns out it does the same thing, which I never noticed before. The rendering is really quick after the SP shows up in Profiler. So...I have no clue what the problem could be. Any help would be GREATLY appreciated!
I would just stick with a predicate like:
Where thing in (#Sets)
Where the 'Sets' variable could be from another dataset I created obtained from SQL like:
Select 'Brett' as Name
Union
Select 'Anna'
Union
Select 'John'
Union
Select 'Jenny'
Simple choose to get the data for sets from 'get data from a dataset'. Once the variable is set SQL 2008R2 and higher should do the lifting for you with figuring out the clause of the predicate in expression of Where thing in (#Sets) actually translates to:
Where thing in ('Brett', 'Anna', 'John', 'Jenny')
The primary solution to speeding SSRS reports and decreasing server load is to cache the reports. If one does this (either my preloading the cache at 7:30 am for instance) or caches the reports on-hit, one will find massive gains in load speed.
Please note that I do this daily and professionally and am not simply waxing poetic on SSRS
Caching in SSRS
http://msdn.microsoft.com/en-us/library/ms155927.aspx
Pre-loading the Cache
http://msdn.microsoft.com/en-us/library/ms155876.aspx
If you do not like initial reports taking long and your data is static i.e. a daily general ledger or the like, meaning the data is relatively static over the day, you may increase the cache life-span.
Finally, you may also opt for business managers to instead receive these reports via email subscriptions, which will send them a point in time Excel report which they may find easier and more systematic.
You can also use parameters in SSRS to allow for easy parsing by the user and faster queries. In the query builder, type IN(#SSN) under the Filter column that you wish to parameterize, you will then find it created in the parameter folder just above data sources in the upper left of your BIDS GUI.
[If you do not see the data source section in SSRS, hit CTRL+ALT+D.
See a nearly identical question here: Performance Issuses with SSRS
Create a UDF which will take a comma (or some other delimiter you want to use) separated list, and return a table you can join on.
https://blogs.msdn.microsoft.com/amitjet/2009/12/11/convert-comma-separated-string-to-table-4-different-approaches/
Then you can take set up a parameter in your sproc such as #TheList varchar(max)
You should then be able to use it in a JOIN, Use it to create a temp table and then join on that in your query, or use it as a sub-select.
We use this quite often, and found that if you are primarily using values which are Integers, then the returned table should be a table of INT's to increase performance.
Pseudo example:
declare #TheList varchar(max)
set #TheList = ('1,2,3,4,5,6,7,8')
select *
from dbo.MyRecords r
join dbo.udf_CreateArrayTable(#TheList) at on r.RecID = at.RecID
I'm designing a SSRS report in Visual Studio for use as a local report (so a SQL Server is not involved).
I have a table with customers/addresses that has the following columns:
AddressID
Firstname
Lastname
Street
Another table keeps orders and looks like this
OrderID
CustomerAddressID
ShopAddressID
So two columns from my order table link to datasets in the address table. I want to display both addresses in my report. The datasource for the report is a xsd dataset.
What's the best way to do this in SSRS? I'm pretty new to SSRS and kind of lost with the dataregions, lists, etc.
You should edit the source for the second dataset to include a parameterized query based on the first one. Something like:
SELECT * FROM other_table
WHERE CustomerAddressID = #adress
OR ShopAddressID = #address
Of course you should create the address parameter as report parameter(pointing to the first dataset)
Hope this makes sense.
Look at subreports.
To be a bit more specific, you need to define multiple data sources in your report that these other regions, tables, or whatever, obtain their data from. You then need callback handlers in your app that can provide that data for each datasource (quoting: "your application must handle the SubreportProcessing event of the LocalReport object.". The article explains this in detail.
Just curious (because I am going to through the same thing right now) - are you really designing SSRS reports (2008), or VS reports (2005)? Because the 2008 ReportViewer control cannot render SSRS 2008 reports ....