This code DECLARE @SQL Varchar(1000)SELECT @SQL = 'SELECT P.id_product 'SELECT @SQL = @SQL + ' ,MAX(CASE WHEN C.id_categories = ' + LTRIM(ID) + ' THEN 1 ELSE 0 END) AS "' + Description + '"'FROM CategoriesSET @SQL = @SQL + CHAR(13) + 'FROM Product_Categories GROUP BY id_product'PRINT @SQL
will produce A quey that looks like this:SELECT P.id_product, MAX(CASE WHEN C.id_categories = 1 THEN 1 ELSE 0 END) AS CategoryDescription, ... MAX(CASE WHEN C.id_categories = N THEN 1 ELSE 0 END) AS CategoryDescriptionFROM Product_Categories GROUP BY id_product
You can either exec it dynamically (EXEC (@SQL)) or paste the print output where you want it.