Question

I need suggestions on how to re-factor the following SQL expression. As you can see all the selected columns except col_N are same. Plus all the inner joins except the last one in the 2 sub-queries are the same. This is just a snippet of my code so I am not including the WHERE clause I have in my query. FYI-This is part of a stored procedure which is used by a SSRS report and performance is BIG for me due to thousands of records:

SELECT col_A
       , col_B, col_C,...
       , '' As[col_N]
FROM table_A 
INNER JOIN table_B 
INNER JOIN table_C
INNER JOIN table_D1

UNION

SELECT col_A
       , col_B, col_C,...
       , (select E.field_2 from table_E AS E where D2.field_1 = E.field_1 AND A.field_1 = E.field_2)     AS [col_N]

FROM table_A as A
INNER JOIN table_B 
INNER JOIN table_C
INNER JOIN table_D2 as D2 
Was it helpful?

Solution

Jean's first suggestion of creating a view by joining A, B and C worked. I created a temp table by joining ABC and then used it to achieve significant performance improvement (query time reduces to half for couple thousand records)!

Licensed under: CC-BY-SA with attribution
Not affiliated with StackOverflow
scroll top