CREATE PROCEDURE [dbo].[sp_SensorsChangeHistoryGet] @Id INT = NULL, @SerialNumber NVARCHAR (50) = NULL AS BEGIN SET NOCOUNT ON; IF( @Id IS NULL) BEGIN IF NULLIF(@SerialNumber, '') IS NULL BEGIN SELECT A.RecordId, A.SensorId, A.ChangeType, A.UserName, A.Timestamp, A.Value1, A.Value2, A.Value3, A.Value4, B.Name FROM SensorChangeHistory as A INNER JOIN SensorChangeType as B on A.ChangeType=B.Id END ELSE BEGIN SELECT A.RecordId, A.SensorId, A.ChangeType, A.UserName, A.Timestamp, A.Value1, A.Value2, A.Value3, A.Value4, B.Name FROM SensorChangeHistory as A INNER JOIN SensorChangeType as B on A.ChangeType=B.Id INNER JOIN Sensors as C on A.SensorID=B.id WHERE C.SerialNumber=@SerialNumber END END ELSE BEGIN SELECT A.RecordId, A.SensorId, A.ChangeType, A.UserName, A.Timestamp, A.Value1, A.Value2, A.Value3, A.Value4, B.Name FROM SensorChangeHistory as A INNER JOIN SensorChangeType as B on A.ChangeType=B.Id INNER JOIN Sensors as C on A.SensorID=C.id WHERE C.id=@Id END END