ALTER PROCEDURE [dbo].[sp_ChannelsGet] @Id BIGINT = NULL, @GroupId INT = NULL, @DASId INT = NULL, @SensorId INT = NULL, @TestSetupId INT = NULL, @TestSetupName [NVARCHAR] (255) = NULL AS BEGIN SET NOCOUNT ON; IF( @Id IS NULL) BEGIN IF( @GroupId IS NULL) BEGIN IF( @DASId IS NULL) BEGIN IF( @SensorId IS NULL) BEGIN IF( @TestSetupId IS NULL) BEGIN IF NULLIF(@TestSetupName, '') IS NULL BEGIN SELECT A.Id, A.GroupId, A.IsoCode, A.IsoChannelName, A.UserCode, A.UserChannelName, A.DASId, A.DASChannelIndex, A.GroupChannelOrder, A.TestSetupOrder, A.SensorId, A.[Disabled], A.LastModified, A.LastModifiedBy FROM [dbo].[Channels] AS A INNER JOIN [dbo].DAS AS B ON A.DASId=B.DASId WHERE B.Type != (SELECT Type FROM DAS WHERE SerialNumber = 'SLICE TC Prototype') END ELSE BEGIN SELECT A.Id, A.GroupId, A.IsoCode, A.IsoChannelName, A.UserCode, A.UserChannelName, A.DASId, A.DASChannelIndex, A.GroupChannelOrder, A.TestSetupOrder, A.SensorId, A.[Disabled], A.LastModified, A.LastModifiedBy FROM [dbo].[Channels] AS A inner join [dbo].Groups AS B ON A.GroupId=B.Id INNER JOIN [dbo].TestSetupGroups AS C ON B.Id=C.GroupId INNER JOIN [dbo].TestSetups AS D on C.TestSetupId=D.TestSetupId INNER JOIN [dbo].DAS AS E ON A.DASId=E.DASId WHERE D.TestSetupName=@TestSetupName AND E.Type != (SELECT Type FROM DAS WHERE SerialNumber = 'SLICE TC Prototype') END END ELSE BEGIN SELECT A.Id, A.GroupId, A.IsoCode, A.IsoChannelName, A.UserCode, A.UserChannelName, A.DASId, A.DASChannelIndex, A.GroupChannelOrder, A.TestSetupOrder, A.SensorId, A.[Disabled], A.LastModified, A.LastModifiedBy FROM [dbo].[Channels] AS A INNER JOIN [dbo].Groups as B ON A.GroupId=B.Id INNER JOIN [dbo].TestSetupGroups AS C on B.Id=C.GroupId INNER JOIN [dbo].DAS AS D ON A.DASId=D.DASId WHERE C.TestSetupId=@TestSetupId AND D.Type != (SELECT Type FROM DAS WHERE SerialNumber = 'SLICE TC Prototype') END END ELSE BEGIN SELECT A.Id, A.GroupId, A.IsoCode, A.IsoChannelName, A.UserCode, A.UserChannelName, A.DASId, A.DASChannelIndex, A.GroupChannelOrder, A.TestSetupOrder, A.SensorId, A.[Disabled], A.LastModified, A.LastModifiedBy FROM [dbo].[Channels] AS A INNER JOIN [dbo].DAS AS B ON A.DASId=B.DASId WHERE A.[SensorId]=@SensorId AND B.Type != (SELECT Type FROM DAS WHERE SerialNumber = 'SLICE TC Prototype') END END ELSE BEGIN SELECT A.Id, A.GroupId, A.IsoCode, A.IsoChannelName, A.UserCode, A.UserChannelName, A.DASId, A.DASChannelIndex, A.GroupChannelOrder, A.TestSetupOrder, A.SensorId, A.[Disabled], A.LastModified, A.LastModifiedBy FROM [dbo].[Channels] AS A INNER JOIN [dbo].DAS AS B ON A.DASId=B.DASId WHERE A.[DASId]=@DASId AND B.Type != (SELECT Type FROM DAS WHERE SerialNumber = 'SLICE TC Prototype') END END ELSE BEGIN SELECT A.Id, A.GroupId, A.IsoCode, A.IsoChannelName, A.UserCode, A.UserChannelName, A.DASId, A.DASChannelIndex, A.GroupChannelOrder, A.TestSetupOrder, A.SensorId, A.[Disabled], A.LastModified, A.LastModifiedBy FROM [dbo].[Channels] AS A INNER JOIN [dbo].DAS AS B ON A.DASId=B.DASId WHERE A.[GroupId]=@GroupId AND B.Type != (SELECT Type FROM DAS WHERE SerialNumber = 'SLICE TC Prototype') END END ELSE BEGIN SELECT A.Id, A.GroupId, A.IsoCode, A.IsoChannelName, A.UserCode, A.UserChannelName, A.DASId, A.DASChannelIndex, A.GroupChannelOrder, A.TestSetupOrder, A.SensorId, A.[Disabled], A.LastModified, A.LastModifiedBy FROM [dbo].[Channels] AS A INNER JOIN [dbo].DAS AS B ON A.DASId=B.DASId WHERE A.[Id]=@Id AND B.Type != (SELECT Type FROM DAS WHERE SerialNumber = 'SLICE TC Prototype') END END