ALTER FUNCTION [dbo].[foo_GetIdenticalChannelCount] ( @GroupId1 int, @GroupId2 int ) RETURNS int AS BEGIN return ( SELECT COUNT(*) FROM [dbo].[Channels] C1, [dbo].[Channels] C2 WHERE C1.GroupId = @GroupId1 AND C2.GroupId = @GroupId2 AND ((C1.SensorId IS NULL AND C2.SensorId IS NULL) OR (C1.SensorId = C2.SensorId)) AND C1.IsoCode = C2.IsoCode AND C1.IsoChannelName = C2.IsoChannelName AND C1.UserCode = C2.UserCode AND C1.UserChannelName = C2.UserChannelName AND (C1.DASId IS NULL OR C2.DASId IS NULL OR C1.DASId = C2.DASId) AND (C1.DASId IS NULL OR C2.DASId IS NULL OR C1.DASChannelIndex = C2.DASChannelIndex) ) END