SELECT cProduct_id, cProduct_Name, cStatus_id, (SELECT TOP 1 cItemCode FROM Product_Codes WHERE cCode1 = p.cCode1 ) AS cItemCode1, (SELECT TOP 1 cItemCode FROM Product_Codes WHERE cCode2 = p.cCode2 ) AS cItemCode2, (SELECT TOP 1 cItemCode FROM Product_Codes WHERE cCode3 = p.cCode3 ) AS cItemCode3 FROM ( SELECT cProduct_id, cProduct_Name, cStatus_id, RIGHT(REPLICATE('0',7) + CAST(iUPC_Mfg AS varchar(7)),7) + RIGHT(REPLICATE('0',7) + CAST(iUPC_Item AS varchar(7)),7) + RIGHT(REPLICATE('0',7) + CAST(iUPC_Case AS varchar(7)),7) AS cCode1, RIGHT(REPLICATE('0',7) + CAST(iUPC_Mfg AS varchar(7)),7) + RIGHT(REPLICATE('0',7) + CAST(iUPC_Item AS varchar(7)),7) AS cCode2, RIGHT(REPLICATE('0',7) + CAST(iUPC_Mfg AS varchar(7)),7) + RIGHT(REPLICATE('0',7) + CAST(iUPC_Case AS varchar(7)),7) AS cCode3 FROM Product WHERE cStatus_id = 'RELE' AND iProduct_id = iProductGroup_id) PNow there's good news and bad news:
"AND iProduct_id = iProductGroup_id"from the WHERE clause, it takes 5 seconds
"AND iProduct_id = iProductGroup_id"AND include the indexes for cCode1 and cCode2
"FROM Product_Codes WITH (index = indx_Code2)"and
"FROM Product_Codes WITH (index = indx_Code3)Then it's one second which is my goal, BUT of course if I add to the WHERE clause it takes 20+ seconds.