Как создать комбинацию из 3 разных запросов для совместной работы - PullRequest
0 голосов
/ 01 марта 2011

Я постараюсь объяснить это визуально:

таблица состоит из

  • бренд
  • модель
  • версия
  • Тип
  • цвет

логика поиска:

  1. выберите марку, включите модель фильтра - 1-й уровень
  2. выбрать модель, включить фильтры версия и тип и цвет - 2-й уровень
  3. выберите любой фильтр = версия, тип или цвет - 3-й уровень, это выбор округа

как создать логику, которая, если я выберу отдельную версию, затем выбирает создает запрос, где brand = @ brand, model = @ model, version = @ version. И мне нужно создать отдельный тип и различный цвет, если они доступны на основе предыдущего запроса.

Было бы довольно легко, если бы была определена логика, такая как 1. марка, 2. модель, 3. версия, 4. тип, 5. цвет.

Но мне нужно создать логику, в которой я могу выбрать 1.brand, 2.model, 3.color, а также изменить версию и тип для этого запроса.

Есть ли хороший способ сделать это в SQL или C #?

Спасибо

Ответы [ 2 ]

1 голос
/ 01 марта 2011

Похоже, вам просто нужно использовать C # для динамического построения вашего SQL-запроса на основе выбранных фильтров.

0 голосов
/ 01 марта 2011

Поддержка неизвестного количества параметров в «Поиске» может быть выполнена в сохраненном процессе, проверяя, указан ли параметр

CREATE PROC SomeSearch
  @param1 VARCHAR(10) = NULL,
  @param2 INT = NULL
  -- etc
AS
SELECT whatever
FROM MyTable
WHERE
  (@param1 IS NULL OR field1=@param1)
  AND (@param2 IS NULL OR field2=@param2)
-- etc

Теперь просто передайте NULL (или вообще не передавайте параметр - по умолчанию NULL), когда этот конкретный фильтр не требуется.

...