DECLARE @table TABLE( ProposalId INT, RiskId INT, RiskTaken BIT)INSERT INTO @tableSELECT 1, 1, 1UNION ALL SELECT 1,2,0UNION ALL SELECT 1,3,0UNION ALL SELECT 2,1,0UNION ALL SELECT 2,2,0UNION ALL SELECT 2,3,0SELECT t.[ProposalId], t.[RiskId], t.[RiskTaken] FROM @table t
DECLARE @table TABLE( ProposalId INT, RiskId INT, RiskTaken BIT)INSERT INTO @tableSELECT 1, 1, 1UNION ALL SELECT 1,2,0UNION ALL SELECT 1,3,0UNION ALL SELECT 2,1,0UNION ALL SELECT 2,2,0UNION ALL SELECT 2,3,0;WITH ProposalRiskAS(SELECT DISTINCT ProposalId FROM @table WHERE RiskTaken = 1)SELECT t.[ProposalId], t.[RiskId], t.[RiskTaken], CASE WHEN pr.ProposalId IS NOT NULL THEN 1 ELSE 0 END AS ProposalTaken FROM @table t LEFT OUTER JOIN ProposalRisk pr ON t.ProposalId = pr.ProposalId
DECLARE @table TABLE( ProposalId INT, RiskId INT, RiskTaken BIT)INSERT INTO @tableSELECT 1, 1, 1UNION ALL SELECT 1,2,0UNION ALL SELECT 1,3,0UNION ALL SELECT 2,1,0UNION ALL SELECT 2,2,0UNION ALL SELECT 2,3,0;with CTE_AsQueryReplacement as( select * from @table --replace this with your complex query),ProposalRisk AS(SELECT DISTINCT ProposalId FROM CTE_AsQueryReplacement WHERE RiskTaken = 1)SELECT t.[ProposalId], t.[RiskId], t.[RiskTaken], CASE WHEN pr.ProposalId IS NOT NULL THEN 1 ELSE 0 END AS ProposalTaken FROM CTE_AsQueryReplacement t LEFT OUTER JOIN ProposalRisk pr ON t.ProposalId = pr.ProposalId