TSQL Challenge 15 - Solution by Niladri Biswas (2)



-- File Name: niladri_biswas_tsqlchallenge_15_2.sql
-- Solution 2: With CTE
;WITH GET_ALL_REDORDS_CTE AS
(
	SELECT  Row,Col
	FROM  @Cols
	CROSS JOIN @Rows
)
, GET_MODULUS_CTE as
(
	SELECT	Row,Col,
			CASE WHEN ((Row % Col) = 0) THEN 0	ELSE 1 END AS [Mod Val]
	FROM GET_ALL_REDORDS_CTE
)

SELECT Row,
			 CASE WHEN	[1]= 0 THEN 'X' ELSE '' END [1]
			,CASE WHEN	[2]= 0 THEN 'X' ELSE '' END [2]
			,CASE WHEN	[3]= 0 THEN 'X' ELSE '' END [3]
			,CASE WHEN	[4]= 0 THEN 'X' ELSE '' END [4]
			,CASE WHEN	[5]= 0 THEN 'X' ELSE '' END [5]
			,CASE WHEN  [6]= 0 THEN 'X' ELSE '' END [6]
			,CASE WHEN  [7]= 0 THEN 'X' ELSE '' END [7]
			,CASE WHEN  [8]= 0 THEN 'X' ELSE '' END [8]
			,CASE WHEN  [9]= 0 THEN 'X' ELSE '' END [9]
FROM
(SELECT Row,Col,[Mod Val] FROM GET_MODULUS_CTE)AS X
PIVOT
(SUM([Mod Val]) FOR Col IN
([1],[2],[3],[4],[5],[6],[7],[8],[9]))AS Pvt

Did you find something incorrect/wrong with this solution? Take a few seconds to Report It.

Did you understand how this solution work? If you find it difficult to understand, you can Request an Explanation or you can Write an explanation to help others better understand this solution.