Monday, February 23, 2015

How to generate report with data from different databases

From time to time we need to generate reports referencing data from other database. In SSRS, One simple way is to utilize its Lookup function.  

All you need to do is create multiple datasets pointing to different databases (data sources). Then use Lookup function following this syntax:
       Lookup (src_expression, target_expression, target_result_expression, target_dataset)

For example, you have application user dataset, say AppUsers(Uid) and membership dataset, say MembershipUsers(Mid, Name). To lookup application user name from membership, the expression will be something like this:
    Lookup(Field!Uid.Value, Field!Mid.Value, Field!Name, “MembershipUsers”)

Notice, Lookup function is good for 1-to-1 source/target field value match. To handle 1-to-many matches, use LookupSet instead.