Поместите туда выражение CASE или преобразуйте его в int:
IsActive = MAX(CASE WHEN IsActive=1 THEN 1 ELSE 0 END)
или
IsActive = MAX(CONVERT(int,IsActive))
Вы также должны знать, что это означает, что значения в столбцах ProductName, VendorName и IsActive в наборе результатов могут быть взяты из разных строк в базовой таблице.
Если вы хотите, чтобы все эти три столбца действительно были из одной строки (и предполагая, что SQL Server 2005 или более поздняя версия), вы бы сделали что-то вроде:
;With Numbered as (
SELECT *,ROW_NUMBER() OVER (
PARTITION BY ProductID,VendorID
ORDER BY /* Something appropriate, or if we just want random... */ newid()) as rn
FROM ProductVendorAssoc
)
select
ProductID,
VendorID,
ProductName,
VendorName,
IsActive
FROM Numbered where rn=1