sql - Compare dataset with another dataset for multiple Columns/Values SSRS -


this image reference. let me explain scenario.

enter image description here

there 2 datasets , b can see, dataset b has actual tests values , dataset has target values (more ranges). code compares each test (blk ...) value target test (blk ...) value, code shown below

=iif(len(lookup("ur_limit",fields!limits.value,fields!blk.value,"target")) <= 0, ( iif(fields!blk.value > lookup("uw_limit",fields!limits.value,fields!blk.value,"target"),"yellow",         iif(fields!blk.value < lookup("lw_limit",fields!limits.value,fields!blk.value,"target"),"yellow","green")) ),  ( iif(fields!blk.value > lookup("ur_limit",fields!limits.value,fields!blk.value,"target"),"red",     iif(fields!blk.value > lookup("uw_limit",fields!limits.value,fields!blk.value,"target"),"yellow",         iif(fields!blk.value < lookup("lr_limit",fields!limits.value,fields!blk.value,"target"),"red",             iif(fields!blk.value < lookup("lw_limit",fields!limits.value,fields!blk.value,"target"),"yellow","green")))) )) 

now problem face is, cant compare each products test (from b) values specific products target values in dataset a. ends happening each test in b compared last target product values in dataset a.

concatenating product , limit fields possible mentioned in comments. lookup function can use string pass search value. note following example:

lookup(fields!product.value & "-" & "ur_limit",...,"testtargetdataset") 

it 905200-ur_limit , return blk value upper limit test target values. of course have create calculated field in testtarget dataset , set concatenation of product , limit fields.

i've recreated scenario using tables provided. first created calculated field named prlimit in test target dataset , set expression:

=fields!product.value & "-" & fields!limits.value 

as mentioned in comments have multiple columns, have use different expression each column:

=switch( fields!blk.value >   lookup(fields!product.value & "-" & "uw_limit",fields!prlimit.value,fields!blk.value,"dataset9"),   "red", fields!blk.value >   lookup(fields!product.value & "-" & "target",fields!prlimit.value,fields!blk.value,"dataset9"),   "yellow", fields!blk.value =   lookup(fields!product.value & "-" & "target",fields!prlimit.value,fields!blk.value,"dataset9"),   "green", fields!blk.value <   lookup(fields!product.value & "-" & "lw_limit",fields!prlimit.value,fields!blk.value,"dataset9"),   "red", fields!blk.value <   lookup(fields!product.value & "-" & "target",fields!prlimit.value,fields!blk.value,"dataset9"),   "yellow" ) 

=switch( fields!bw.value >   lookup(fields!product.value & "-" & "uw_limit",fields!prlimit.value,fields!bw.value,"dataset9"),   "red", fields!bw.value >   lookup(fields!product.value & "-" & "target",fields!prlimit.value,fields!bw.value,"dataset9"),   "yellow", fields!bw.value =   lookup(fields!product.value & "-" & "target",fields!prlimit.value,fields!bw.value,"dataset9"),   "green", fields!bw.value <   lookup(fields!product.value & "-" & "lw_limit",fields!prlimit.value,fields!bw.value,"dataset9"),   "red", fields!bw.value <   lookup(fields!product.value & "-" & "target",fields!prlimit.value,fields!bw.value,"dataset9"),   "yellow" ) 

the above expressions used right color blk , bw columns respectively. logic used is:

  • if blk value greater uw blk value: color in red
  • else if blk value greater target value: color in yellow
  • else if blk value equal target value: color in green
  • else if blk value less lw blk value: color in red
  • else if blk value less target blk value: color in yellow

this final result data provided in question:

enter image description here

let me know if helps.


Comments

Popular posts from this blog

java - pagination of xlsx file to XSSFworkbook using apache POI -

Unlimited choices in BASH case statement -

apache - How do I stop my index.php being run twice for every user -