Wednesday, July 22, 2015

SSRS – LookUp, MultiLookUp and LookupSet Functions

These beautiful features were introduced with the release of SQL Server 2008R2 which brings a lot of satisfaction to report writer and developers to marge values from two datasets.
 (This is something that we had to do in SSRS 2005 with custom code and timing the dataset that loaded a custom code variable in memory just to use custom code to retrieve the info from that same cache in the report)
These functions play a very handy role to combine data from two datasets in a single data region which was not possible in earlier versions of Reporting Services in a very simple way. We cannot assume these functions as an alternate to JOINs but something similar to JOINs of SQL.

These functions play an effect role to link together data from two shared datasets in one data region. SQL Reporting Services comes with three lookup functions having four parameters as given below -
  • Lookup (source_expression, destination_expression, result_expression, dataset)
  • LookupSet (source_expression, destination_expression, result_expression, dataset)
  • MultilookUp (source_expression, destination_expression, result_expression, dataset)
Parameters definitions
source_expression – (VariantArray) An expression that is evaluated in the current scope and that specifies the set of names or keys to look up. This will be evaluated in the current scope – generally the dataSet with which the Tablix is bound.
destination_expression – (Variant) an expression that is evaluated for each row in a dataset and that specifies the name or key to match on. This field will belong to the dataset provided in the same function as the last parameter.
result_expression – (Variant) an expression that is evaluated for the row in the dataset where source_expression = destination_expression, and that specifies the value to retrieve. The field we want to retrieve from the destination dataset for the matching source_expression & destination_expression.
Dataset – A constant that will specifies the name of a dataset in the report. The dataset in which we want to look the values into.

How does Lookup work?
To understand the lookup function, we have the two dataset such as Employee and Country in our report where Employee is our main dataset and country is our secondary dataset having the following information-

In the above datasets, you can see that Country Code is common in both dataset (Employee and Country) and after combination of the both datasets; country name is appearing with each employee by the helping of lookup functionality.

To implement these functions in SSRS or Report Builder by using the following steps –

1) We need to create a report called Employee Information having with two datasets dataset (Employee and Country) as shown below:

2) Now,  set the Employee dataset as the main dataset for the report Tablix as shown below:

3) We need to call Country Name from the Country dataset. So, right click on the column and click on expressions as shown below:

4) In Expression window, we need to do the following setting by using the lookup function where first value (Key Value) comes from the main dataset (Employee), second value (Key value) from the requested dataset (Country), third value (returned value) will be from the requested dataset (Country) and forth value should be the name of the requested dataset (Country)–       
= Lookup (Fields!CountryCode.Value,
Fields!CountryCode.Value,  
Fields!CountryName.Value,
"Country")


5) Click on the OK button and view the report preview as shown below –



6) Now, we need to implement second LookupSet function to the report and need to add another table to represent the data for this function. In this example, we need to set the Country dataset the main table to the Tablix and will use Employee dataset as the  secondary dataset as shown below-  




7) Now, we need to call Employees names from the Employee dataset which are associated with the respective country. So, right click on the column and click on expressions as shown below: 


8) In Expression window, we need to do the following setting by using the lookupSet function where first value (Key Value) comes from the main dataset (Country), second value (Key value) from the requested dataset (Employee), third value (returned value) will be from the requested dataset (Employee) and forth value should be the name of the requested dataset (Employee)– 
=Join(LookUpSet(Fields!CountryCode.Value,
Fields!CountryCode.Value,
Fields!EmployeeName.Value,
 "Employee"),"," )



9) Click on the OK button and view the report preview as shown below-



In the LookupSet section, you can see that there are two names are appearing just front of USA country due to LookupSet function.

10) Now, we need to implement second MultiLookUp function to the report and need to add another table to represent the data for this function. In this example, we need to set the Country dataset the main table to the Tablix and will use Employee dataset as the  secondary dataset as shown below-  


11) Now, we need to call Employees names from the Employee dataset which are associated with the respective country. So, right click on the column and click on expressions as shown below:



12) In Expression window, we need to do the following setting by using the Multilookup function where first value (Key Value) comes from the main dataset (Country), second value (Key value) from the requested dataset (Employee), third value (returned value) will be from the requested dataset (Employee) and forth value should be the name of the requested dataset (Employee)–

=Join(MultiLookup(Split(Fields!CountryCode.Value,","),
Fields!CountryCode.Value,
Fields!EmployeeName.Value,
"Employee"),"," )


13) Click on the OK button and view the report preview as shown below-



Now you can see that for USA country is showing the single employee name instead of two employees. To look up the names that correspond to the list of identifiers, use Multilookup. You must first split the list into a string array, call Multilookup to retrieve the employee’s names, and concatenate the results into a string.

Watch Video demo here-


32 comments:

  1. Very Helpful post.. Thanks Mukesh :)
    ~
    Chander

    ReplyDelete
  2. Can you write more on MultiLookup.
    ~
    Chander

    ReplyDelete
  3. Sure! I'll post some more example on Multilookup

    ReplyDelete
  4. What if I have 3 Datasets and want to use the Lookupset function on Dataset1 and Dataset3. How do I do that?

    ReplyDelete
  5. Thanks you very much for sharing these links. Will definitely check this out..
    CPA in Key West

    ReplyDelete
  6. I found that site very usefull and this survey is very cirious, I ' ve never seen a blog that demand a survey for this actions, very curious... odzyskiwanie skasowanych smsów

    ReplyDelete
  7. Thank you for the good writeup. It in fact was a amusement account it. Look advanced to 먹튀사이트

    ReplyDelete
  8. Thank you for some other informative blog. Where else could I get that type of information written in such an ideal means? I have a mission that I’m just now working on, and I have been at the look out for such information. https://makingwayforpeople.wordpress.com/2021/06/21/why-do-business-in-cambodia-9-reasons-for-it/

    ReplyDelete
  9. Hi, This is a nice article you shared great information I have read it thanks for giving such a wonderful Blog for the reader. website management

    ReplyDelete
  10. Its as if you had a great grasp on the subject matter, but you forgot to include your readers. Perhaps you should think about this from more than one angle. Prime Cuppa

    ReplyDelete
  11. Welcome to the party of my life here you will learn everything about me. tafsir ahlam

    ReplyDelete
  12. Easily, the article is actually the best topic on this registry related issue. I fit in with your conclusions and will eagerly look forward to your next updates. business finder

    ReplyDelete
  13. I visit your blog regularly and recommend it to all of those who wanted to enhance their knowledge with ease. The style of writing is excellent and also the content is top-notch. Thanks for that shrewdness you provide the readers! IT support company

    ReplyDelete
  14. This is very appealing, however , it is very important that will mouse click on the connection: backlinks

    ReplyDelete
  15. This is truly a great read for me. I have bookmarked it and I am looking forward to reading new articles. Keep up the good work!. Hire a Copywriter

    ReplyDelete
  16. Conversely, a significant new mall improvement might lessen the allure of existing serene, private properties. savoy little tokyo

    ReplyDelete
  17. You know your projects stand out of the herd. There is something special about them. It seems to me all of them are really brilliant! sweet business name ideas

    ReplyDelete
  18. Also, when you think about making improvements, remember the worth of different homes nearby. ix tools

    ReplyDelete
  19. You should mainly superior together with well-performing material, which means that see it: backlinks

    ReplyDelete
  20. Erstellen Sie Ihre eigenen Filmen mit Windows Movie Maker. Mit dem Programm werden Ihre Fotos und Videos zum flüssigen und wunderschönen Film gemacht. Mit Hilfe von speziellen Effekten, Übergänge, Ton, Untertitel und so weiter können Sie Ihre Geschichte vollständig zum Ausdruck bringen. Kostenloser Download von Windows Movie Maker 2021

    ReplyDelete
  21. How are Sphynx cats with other pets?
    This is hard to answer. Generally, as a breed and given how affectionate they are I would say you have a better chance of a Sphynx cat getting along with other pets than a different breed of cat. But then each one is different and may or may not like any given pet or person. https://www.royaltykitten.com/
    sphynx cats for sale
    They definitely do not like to be alone, that was one of the reasons we got two. So it is always good for them to have a buddy if you are going to be away at work all day.
    https://www.chihuahuapuppiesforsale1.com/
    Sphynx kitten for sale

    ReplyDelete
  22. I found Hubwit as a transparent s ite, a social hub which is a conglomerate of Buyers and Sellers who are ready to offer online digital consultancy at decent cost. Microsoft365

    ReplyDelete
  23. Business landlines are soon becoming a thing of the past. But are small businesses really willing to put them into oblivion and welcome VOIP technology and business mobile phones for their small businesses? Black Hair Colour

    ReplyDelete
  24. I have bookmarked your website because this site contains valuable information in it. I am really happy with articles quality and presentation. Thanks a lot for keeping great stuff. I am very much thankful for this site. 알파벳 토토

    ReplyDelete
  25. thank you this good artivle in my reading journey tafsir ahlam

    ReplyDelete
  26. Learn more about the top 10 careers inspired by reality TV shows. employment

    ReplyDelete