Liberty Crown Infotech Ответов: 2

Фильтрация базы данных с использованием нескольких условий


У меня есть текстовое поле и 3 выпадающих списка с элементом, который можно выбрать в каждом из выпадающих списков. Есть два сценария фильтрации, которые я хочу реализовать.

1. получение результата фильтрации после ввода значения в текстовое поле и выбора значений в следующих двух текстовых полях, исключая последнее.

2. Получение фильтрации после ввода значения в текстовое поле и выбора значений в трех других выпадающих окнах для фильтрации результата. Мой приведенный ниже код может выдавать каждый из результатов только по одному, если я изменю "и "на" или "и"или "s На"и" s. Может ли кто-нибудь помочь с модификацией или новым запросом, чтобы иметь возможность достичь этих двух сценариев?

Что я уже пробовал:

CREATE proc spSearchProduct 
@searchWord1OnMasterPage nvarChar(50),
@searchWord2OnMasterPage nvarChar (50),
@searchWord3OnMasterPage nvarChar (50),
@searchWord4OnMasterPage nvarChar (50)
as
Begin
    Select Product.Name,Price,Seller,ProductStreetNo.StrNo,ProductStreet.StreetName from Product 
    INNER JOIN ProductStreetNo
    ON Product.StreetNoID = ProductStreetNo.IDStreetNo
    INNER JOIN ProductStreet
    ON Product.StreetID = ProductStreet.IDStreet
    INNER JOIN  ProductState
    ON StateID=ProductState.IDState
    INNER JOIN  ProductCity
    ON CityID=ProductCity.IDCity
    where 

Product.Name Like '%' + @searchWord1OnMasterPage + '%' and

    ProductState.StateName Like '%' + @searchWord2OnMasterPage + '%' and

    ((ProductCity.CityName Like '%' + @searchWord3OnMasterPage + '%' )or
    (ProductStreet.StreetName Like '%' + @searchWord4OnMasterPage + '%') or
    (ProductStreet.StreetName is null)) and

    ((ProductCity.CityName Like '%' + @searchWord3OnMasterPage + '%' )or
    (ProductStreet.StreetName Like '%' + @searchWord4OnMasterPage + '%') or
    (ProductStreet.StreetName is null))

End

2 Ответов

Рейтинг:
2

Liberty Crown Infotech

Продукт.Имя типа ' % '+ @searchWord1OnMasterPage + ' % ' и

Состояние продукта.Имя состояния типа ' % '+ @searchWord2OnMasterPage + ' % ' и

(ProductCity.CityName, например '%' + @searchWord3OnMasterPage +'%') и


((Продуктовая улица.StreetName Like '%' + @searchWord4OnMasterPage +'%') или
(@searchWord4OnMasterPage = 'выбрать улицу'))


Рейтинг:
0

BIKASH KARMAKAR

Изменение В Запросе
** Пожалуйста, Смотрите Внимательно

Выберите Продукт.Наименование,Цена,Продавец,ProductStreetNo.StrNo,ProductStreet.Координаты от продукта
Внутреннее соединение ProductStreetNo
на продукты.StreetNoID = ProductStreetNo.Идстритно
Внутреннее соединение ProductStreet
на продукты.Телефон В Вильнюсе = ProductStreet.Идстрит
Внутреннее соединение состояние продукта
На StateID=состояние продукта.IDState
Внутреннее соединение ProductCity
ON CityID=ProductCity.IDCity
где
(
(@searchWord1OnMasterPage имеет значение NULL)
ОПЕРАЦИОННАЯ
(Продукт.Имя типа ' % ' + @searchWord1OnMasterPage +'%' )
)
и
(
(@searchWord2OnMasterPage имеет значение NULL)
ОПЕРАЦИОННАЯ
(Состояние продукта.Имя состояния типа ' % ' + @searchWord2OnMasterPage +'%')
)
и
(
(@searchWord3OnMasterPage имеет значение NULL)
ОПЕРАЦИОННАЯ
(ProductCity.CityName Like '%' + @searchWord3OnMasterPage +'%' )
)
и
((@searchWord4OnMasterPage имеет значение NULL)
ОПЕРАЦИОННАЯ
(Продуктовая улица.StreetName Like '%' + @searchWord4OnMasterPage +'%')
)