CREATE PROCEDURE search_orders_6 @orderid int = NULL, @fromdate datetime = NULL, @todate datetime = NULL, @minprice money = NULL, @maxprice money = NULL, @custid nchar(5) = NULL, @custname nvarchar(40) = NULL, @city nvarchar(15) = NULL, @region nvarchar(15) = NULL, @country nvarchar(15) = NULL, @prodid int = NULL, @prodname nvarchar(40) = NULL AS SELECT o.OrderID, o.OrderDate, od.UnitPrice, od.Quantity, c.CustomerID, c.CompanyName, c.Address, c.City, c.Region, c.PostalCode, c.Country, c.Phone, p.ProductID, p.ProductName, p.UnitsInStock, p.UnitsOnOrder INTO #temp FROM Orders o JOIN [Order Details] od ON o.OrderID = od.OrderID JOIN Customers c ON o.CustomerID = c.CustomerID JOIN Products p ON p.ProductID = od.ProductID IF @orderid IS NOT NULL DELETE #temp WHERE OrderID <> @orderid IF @fromdate IS NOT NULL DELETE #temp WHERE OrderDate < @fromdate IF @todate IS NOT NULL DELETE #temp WHERE OrderDate > @todate IF @minprice IS NOT NULL DELETE #temp WHERE UnitPrice < @minprice IF @maxprice IS NOT NULL DELETE #temp WHERE UnitPrice > @maxprice IF @minprice IS NOT NULL DELETE #temp WHERE UnitPrice < @minprice IF @custid IS NOT NULL DELETE #temp WHERE CustomerID <> @custid IF @custname IS NOT NULL DELETE #temp WHERE CompanyName NOT LIKE @custname + '%' IF @city IS NOT NULL DELETE #temp WHERE City <> @city OR City IS NULL IF @region IS NOT NULL DELETE #temp WHERE Region <> @region OR Region IS NULL IF @country IS NOT NULL DELETE #temp WHERE Country <> @country OR Country IS NULL IF @prodid IS NOT NULL DELETE #temp WHERE ProductID <> @prodid IF @prodname IS NOT NULL DELETE #temp WHERE ProductName NOT LIKE @prodname + '%' SELECT * FROM #temp ORDER BY OrderID