SQL Server Reporting Services (Overwrite Dataset) - sql-server

I created a paginated report using SQL Server Reporting Services and attached a dataset to pull a specific query from the database. However, I would like when I create a schedule for that report, for the delivery dataset to be used instead of the report dataset. Is this possible?
The reason being I want not only for the scheduled report to output one report per row in the database table but that each report only contains its respective row of data. What would you advise? Do let me know if any additional information is needed.

Related

Which is better : to group records in a sql server stored procedure or to group in rdlc report?

Which is better : to group records in a SQL Server stored procedure or to group in rdlc report ?
Do it in the database unless you need the details rows available to allow drill down in the report itself.
This means that the resultset passed back to the report will potentially be much smaller and SQL Server will likely have better algorithms and more information about the source data to do the grouping efficiently.

Sharepoint Data source within SQL Server

I have a query which is written in SQL Server and this gives me what I require.
I have a new requirement to add a Sharepoint Data source field on to the same SQL Query and perform some matching against them.
I know how to add a Sharepoint source as a Datasource within SSRS, however not quite sure how this can be implemented within SQL itself?
Note: my front end for the SQL query is SSRS i.e. once all sorted on SQL, I copy across to SSRS and design accordingly.

SQL Master Data Services 2016 Excel Publish

I'm testing Master Data Services on SQL 2016 CTP 3.3 (azure VM). I've got a MDS model up and running. I can browse the model in Excel 2016 with the Master Data Services add-in.
If I create a new entity (table), it creates the new table and I can go into SQL server management studio to see the stg.NewTable with the column names I set.
When I add rows, and hit the publish button, I don't see the rows being added to the stage table for me to see in the database. Am I missing something ?
Thanks !
I'm an idiot.. MDS puts many many tables in by default, I wasn't looking in the obscurely named tables at the top. Just need to stop and look at the database structure!
When you load the data in MDS using Excel Add-in, the data is directly loaded into the entity table and not in the staging table. You can either extract the data using subscription view created on your entity or you can get the name of the entity table from mdm.tblEntity table and execute a select query on that table.
When you enter any data from MDS UI it gets stored in the mdm tables in MDM database. To get the data, you need Subscription Views and ETL(SSIS or any other tool)

Convert MS Access Reports to SQL Server Reporting

I have a bunch of old reports in MS Access that I want to just move over to SQL Server.
Is this possible to do? What steps need to be taken?
Identify a Report to convert
Open the Report in MS Access in Design mode
Get an old copy of the report or run the report out of MS Access (as the basis of making a SSRS report)
Open the Report Properties and find the Record Source the Report is using: qry_Intermediary_Summary
Goto the Queries tab and right click the Query and choose Design View:
Right click and choose SQL View
Copy the MS Access SQL into SQL Management Studio
Edit the MS Access SQL so it is SQL Server compliant:
Escaped column names that are reserved SQL Keywords (eg GROUP)
Replace double quotes with single quotes
Make sure Table/Views exist
Remove Dollar signs
Convert Trim(...) to LTrim(RTrim(...)))
etc
When a Query uses nested queries we need to convert them to Stored Procedures and load the data in Temporary tables. eg
This SQL uses 3 nested queries:
qryTopStocks
qryTopStocksBuys
qryTopStocksSells​
We cannot make the queries Functions that return Tables because Functions dont support ORDER BY
We cannot turn the queries into Views because Views do not accept parameters
So we have to convert the queries into Stored Procedures:
Then in our DataSets we execute the Stored Procs into Temporary tables that we can join:
Once you have the Query and it is returning the exact results as MS Access (view the old report to check), then we can create a new report.
I have used the MS Access to SSRS conversion tool. It managed to get the MS Access report designs but couldn't extract data. These SSRS2005 version reports are in directory AAA. Copy the Report you are converting from the AAA folder into the BBB project folder.
Import the old SSRS2005 report into BIDS/SSRS2016:
Select all the controls and copy them onto a new SSRS2016 report. Then delete the SSRS2005 report from the project. You only need it to copy the controls retaining the design, fonts and styles.
In BIDS map all the controls to their field in the DataSet.​
UPDATE: I just found this, its quite helpful: https://www.databasejournal.com/features/msaccess/article.php/3705151/Converting-Access-Queries-to-SQL-Server.htm
And this is a really good explanation of MS Access queries vs SQL Server queries for linked dBs
https://www.mssqltips.com/sqlservertip/1482/microsoft-access-pass-through-queries-to-sql-server/

Can I "join" across datasources in SSRS?

I've got two datasources, one Oracle and one Sql Server. Due to circumstances that predate me (as in it was like this when I found it) some columns in the Oracle database contain PKs from lookup tables in the Sql Server database.
I am attempting to create a Sql Server Reporting Services report that will combine data from both the Oracle and Sql Server database; where the data to be reported is partially from Oracle but some of the values needs to be looked up in Sql Server.
I've got the datasources. I've got the DataSets. I just can't figure out how to show both datasets in the same tabular report.
Is this possible? If so how so? I'd rather not resort to a db link in one or the other databases as I'd like to handle this on the reporting side.
I don't think you can join directly, but you might be able to add a subreport that would query the second datasource by using the foreign key from the first datasource as a parameter. See: How to: Add a Subreport and Parameters (Reporting Services).
You could also try using the Lookup and Lookupset functions within your tablix.
Lookup is a 1 to 1 join while Lookupset is 1 to many and may need you to have your data concatenated if you want a set of strings out.
For Lookup the following is from the MSDN site with some tweaks for my simple mind
Lookup(Field you are joining from, Field you are joining to, Field you want back, Dataset of the field you want back)
The tablix should be linked to the dataset of your source (joining from).
And just realised this is from 2010, not 2014...so a necro-post!
you could also embed a table inside another table and pass the primary key to the embeded table.
You could create a linked server that would contain data from both instances. From the SSRS point of view you would have one single datasource.
You can use heterogenous services or oracle transparent gateway to run the report off the oracle side. Oracle can query the data from the SQL side.

Resources