yes i am referring to the database records , parameter values 0/1 as in, if between the two parameters (Os_List,Location) if one of them is kept blank,the output is blank , but if both are entered i get correct result i went through few articles on Dynamic Where clause,but none of the syntax worked properly " SELECT Cus_Name, Cus_City, Cus_Country FROM @Customers WHERE (Cus_Name = @Cus_Name OR @Cus_Name IS NULL) AND (Cus_City = @Cus_City OR @Cus_City IS NULL) AND (Cus_Country = @Cus_Country OR @Cus_Country IS NULL) " Following is the entire code Thanks Code:SELECT Computer."Computer_Idn" AS Computer_Computer_Idn, Computer."LoginName" AS Computer_LoginName, BoundAdapter."Computer_Idn" AS BoundAdapter_Computer_Idn, Operating_System."Computer_Idn" AS Operating_System_Computer_Idn, Operating_System."OSType" AS Operating_System_OSType, Processor."Computer_Idn" AS Processor_Computer_Idn, Processor."Type" AS Processor_Type, Processor."MaxSpeed" AS Processor_MaxSpeed, Memory."Computer_Idn" AS Memory_Computer_Idn, Memory."BytesTotal" AS Memory_BytesTotal, BoundAdapter."PrimaryDNS" AS BoundAdapter_PrimaryDNS, BoundAdapter."IPAddress" AS BoundAdapter_IPAddress, Land."Computer_Idn" AS Land_Computer_Idn, Land."ClientConfigurationName" AS Land_ClientConfigurationNameFROM "dbo"."Computer" Computer INNER JOIN "dbo"."Operating_System" Operating_System ON Computer."Computer_Idn" = Operating_System."Computer_Idn" INNER JOIN "dbo"."Land" Land ON Computer."Computer_Idn" = Land."Computer_Idn", "dbo"."BoundAdapter" BoundAdapter, "dbo"."Processor" Processor, "dbo"."Memory" MemoryWHERE Computer.Computer_Idn = BoundAdapter.Computer_Idn and Computer.Computer_Idn = Operating_System.Computer_Idn and Computer.Computer_Idn = Memory.Computer_Idn and Computer.Computer_Idn = Processor.Computer_Idn and Computer.Computer_Idn = Land.Computer_Idn and Operating_System.OSType = ISNULL ($P{Os_List},Operating_System.OSType) and Land.ClientConfigurationName = ISNULL($P{Location},Land.ClientConfigurationName)ORDER BY BoundAdapter."IPAddress" ASC