I have four tables:
1-dbo.Projects(id,ProjectName,Areas,PaymentSystem,location.id,purpose.id,types.id,etc)
2-dbo.Locations (id, location name)
3-dbo.Purpose (id, Purposename)
4-dbo.Types (id, typname)
I have a search criteria, this criteria is filled with data from database tables: locations, purpose and types, also have textboxes for max and min values.
I will search with all fields and max, min values - I reached to this query but missed the query to get or filter max and min :
ALTER FUNCTION SearchProjects (
@location NVARCHAR(50),
@purpose NVARCHAR(50),
@type NVARCHAR(50),
@max nvarchar(50),
@min nvarchar(50))
RETURNS TABLE
AS
RETURN
(
SELECT p.ProjectName,
p.Areas,
p.PaymentSystem,
p.ReceivedDate,
p.PropertyClassification,
p.ProjectImage,
l.LocationName,
Pur.PurposeName,
t.TypeName
FROM dbo.Projects AS p
LEFT JOIN dbo.Locations AS l ON p.LocationID = l.ID
LEFT JOIN dbo.Purpose pur ON p.PurposeID = pur.ID
LEFT JOIN dbo.[Types] AS t ON p.TypeID = t.ID
WHERE UPPER(ISNULL(l.LocationName,N'')) LIKE N'%' + UPPER(@location) + '%'
AND UPPER(ISNULL(pur.PurposeName,N'')) LIKE N'%' + UPPER(@purpose) + '%'
AND UPPER(ISNULL(t.TypeName,N'')) LIKE N'%' + UPPER(@type) + '%'
AND p.Areas like @max
AND p.Areas like @min
)
GO
SELECT * FROM dbo.SearchProjects('','','','200','250');