Добро пожаловать в форум, Guest  >>   Войти | Регистрация | Поиск | Правила | В избранное | Подписаться
Все форумы / Microsoft SQL Server Новый топик    Ответить
 Фильтры в табилце, вопрос спецам.  [new]
Dim Grishin
Member

Откуда: Florida, US
Сообщений: 547
Ситуация следующая:
Есть табилца объектов (Objects) ID_Object - ид. объекта
Есть табилца фильтров полей таб.Objects (Filters) ID_Filters - ид.-тор фильтра
Есть таблица комманд (Commands), например (<,>,<>,=)

Фильтры записуются строками с указанием комманды(Commands):
Например:
поле: В, комманда: >, значение: 12
поле: ы, комманда: <>, значение: 2
поле: а, комманда: =, значение: 3

Нужно сделать "такую штуку", которая бы в виде таблицы давала мне ряд ID_Object, которые соответствуют фильтру(зная ID_Filters) и эту "штукенцию" я мог использовать для select'a.
SELECT *
FROM Objects
INNER JOIN [????] t
ON Objects.ID_Object = t.ID_Object
2 сен 05, 16:30    [1841851]     Ответить | Цитировать Сообщить модератору
 Re: Фильтры в табилце, вопрос спецам.  [new]
Dim Grishin
Member

Откуда: Florida, US
Сообщений: 547
может посоветуете в каком то другом виде хранить фильтры?
может где то почитать?
нужно позарез.
2 сен 05, 16:46    [1841964]     Ответить | Цитировать Сообщить модератору
 Re: Фильтры в табилце, вопрос спецам.  [new]
Dim Grishin
Member

Откуда: Florida, US
Сообщений: 547
тут гуру есть?
2 сен 05, 17:17    [1842170]     Ответить | Цитировать Сообщить модератору
 Re: Фильтры в табилце, вопрос спецам.  [new]
GreenSunrise
Member

Откуда:
Сообщений: 12310
Делать динамический запрос, который склеивать из ваших данных.
2 сен 05, 17:20    [1842190]     Ответить | Цитировать Сообщить модератору
 Re: Фильтры в табилце, вопрос спецам.  [new]
Dim Grishin
Member

Откуда: Florida, US
Сообщений: 547
GreenSunrise
Делать динамический запрос, который склеивать из ваших данных.
и куда его засовывать и через что?
2 сен 05, 17:21    [1842197]     Ответить | Цитировать Сообщить модератору
 Re: Фильтры в табилце, вопрос спецам.  [new]
А.Панков
Member

Откуда: Toronto
Сообщений: 523
Попробуйте изложить вопрос покорректнее. Я лично ни черта не понял, что вы хотите.
2 сен 05, 17:21    [1842203]     Ответить | Цитировать Сообщить модератору
 Re: Фильтры в табилце, вопрос спецам.  [new]
GreenSunrise
Member

Откуда:
Сообщений: 12310
declare @strSQL nvarchar(4000)
set @strSQL = '...' -- тут собираете свой запрос как вам надо, приклеивая фильтры, значения, и т.д.
exec (@strSQL)
2 сен 05, 17:26    [1842239]     Ответить | Цитировать Сообщить модератору
 Re: Фильтры в табилце, вопрос спецам.  [new]
Dim Grishin
Member

Откуда: Florida, US
Сообщений: 547
А.Панков
Попробуйте изложить вопрос покорректнее. Я лично ни черта не понял, что вы хотите.

Есть в БД документы с множеством полей, нужно дать возможность пользователю создавать свои фильтры на эти документы, эти фильтры нужно держать на сервере. (Фильтр - набор ограничений, то есть дата документа больше 15.09.05, или сумма какая то больше 20 и т.д.)
Должна быть возможность имея фильтр получить список документов из базы, которые соотвествуют фильтру.
2 сен 05, 17:28    [1842257]     Ответить | Цитировать Сообщить модератору
 Re: Фильтры в табилце, вопрос спецам.  [new]
Dim Grishin
Member

Откуда: Florida, US
Сообщений: 547
GreenSunrise
declare @strSQL nvarchar(4000)
set @strSQL = '...' -- тут собираете свой запрос как вам надо, приклеивая фильтры, значения, и т.д.
exec (@strSQL)
это всё круто, как дальше в запросе использовать?

из sp в селекте набор ID_Object я не получу

:)
2 сен 05, 17:30    [1842265]     Ответить | Цитировать Сообщить модератору
 Re: Фильтры в табилце, вопрос спецам.  [new]
Glory
Member

Откуда:
Сообщений: 104760
Dim Grishin
GreenSunrise
declare @strSQL nvarchar(4000)
set @strSQL = '...' -- тут собираете свой запрос как вам надо, приклеивая фильтры, значения, и т.д.
exec (@strSQL)
это всё круто, как дальше в запросе использовать?

из sp в селекте набор ID_Object я не получу

:)


declare @strSQL nvarchar(4000)
set @strSQL = '...' -- тут собираете свой запрос как вам надо, приклеивая фильтры, значения, и т.д.
create table #result(....)
insert #result exec (@strSQL)
2 сен 05, 17:51    [1842395]     Ответить | Цитировать Сообщить модератору
 Re: Фильтры в табилце, вопрос спецам.  [new]
Dim Grishin
Member

Откуда: Florida, US
Сообщений: 547
Glory
Dim Grishin
GreenSunrise
declare @strSQL nvarchar(4000)
set @strSQL = '...' -- тут собираете свой запрос как вам надо, приклеивая фильтры, значения, и т.д.
exec (@strSQL)
это всё круто, как дальше в запросе использовать?

из sp в селекте набор ID_Object я не получу

:)


declare @strSQL nvarchar(4000)
set @strSQL = '...' -- тут собираете свой запрос как вам надо, приклеивая фильтры, значения, и т.д.
create table #result(....)
insert #result exec (@strSQL)
thx, теперь есть почва для дальнейших размышлений.
2 сен 05, 18:11    [1842501]     Ответить | Цитировать Сообщить модератору
 Re: Фильтры в табилце, вопрос спецам.  [new]
GreenSunrise
Member

Откуда:
Сообщений: 12310
А если вы этот запрос с клиента собираетесь выполнять, то и временных таблиц не надо - и так получите нормально.
2 сен 05, 18:13    [1842516]     Ответить | Цитировать Сообщить модератору
 Re: Фильтры в табилце, вопрос спецам.  [new]
Dim Grishin
Member

Откуда: Florida, US
Сообщений: 547
Glory
Dim Grishin
GreenSunrise
declare @strSQL nvarchar(4000)
set @strSQL = '...' -- тут собираете свой запрос как вам надо, приклеивая фильтры, значения, и т.д.
exec (@strSQL)
это всё круто, как дальше в запросе использовать?

из sp в селекте набор ID_Object я не получу

:)


declare @strSQL nvarchar(4000)
set @strSQL = '...' -- тут собираете свой запрос как вам надо, приклеивая фильтры, значения, и т.д.
create table #result(....)
insert #result exec (@strSQL)


А как насчет, если фильтр у меня будет в не строками в таблице Filters, а в поле xml этой балицы, то есть на определённую комбинацию фильтров будет 1 xml field?
Такой способ будет быстрее же работать, или нет?
2 сен 05, 18:38    [1842611]     Ответить | Цитировать Сообщить модератору
 Re: Фильтры в табилце, вопрос спецам.  [new]
Dim Grishin
Member

Откуда: Florida, US
Сообщений: 547
GreenSunrise
А если вы этот запрос с клиента собираетесь выполнять, то и временных таблиц не надо - и так получите нормально.
еще не знаю, как часто это и каким макаром буду использовать.. пока есть необходимость смотреть результат одного фильтра, вполне реально в будущем будет возможность видеть отчет документов, в разрезе каждого выбранного фильтра из списка фильтров
2 сен 05, 18:42    [1842624]     Ответить | Цитировать Сообщить модератору
 Re: Фильтры в табилце, вопрос спецам.  [new]
GreenSunrise
Member

Откуда:
Сообщений: 12310
Dim Grishin
А как насчет, если фильтр у меня будет в не строками в таблице Filters, а в поле xml этой балицы, то есть на определённую комбинацию фильтров будет 1 xml field?
Такой способ будет быстрее же работать, или нет?

Да вы можете вообще запросы целиком хранить просто в текстовом виде. Или куски запросов, например, фильтры целиком без всяких заморочек с XML. Строка - она и есть строка.

Насчет быстрее - вам надо не склейку запросов оптимизировать, а думать, как оптимизировать сами запросы. Склейка - это несущественные мелочи по производительности в вашем случае.
2 сен 05, 18:47    [1842636]     Ответить | Цитировать Сообщить модератору
 Re: Фильтры в табилце, вопрос спецам.  [new]
Dim Grishin
Member

Откуда: Florida, US
Сообщений: 547
GreenSunrise
Dim Grishin
А как насчет, если фильтр у меня будет в не строками в таблице Filters, а в поле xml этой балицы, то есть на определённую комбинацию фильтров будет 1 xml field?
Такой способ будет быстрее же работать, или нет?

Да вы можете вообще запросы целиком хранить просто в текстовом виде. Или куски запросов, например, фильтры целиком без всяких заморочек с XML. Строка - она и есть строка.

Насчет быстрее - вам надо не склейку запросов оптимизировать, а думать, как оптимизировать сами запросы. Склейка - это несущественные мелочи по производительности в вашем случае.


нужно дать возможность редактировать фильтр... распарсить по полочкам фильтр сложнее, чем запарсить...
2 сен 05, 18:53    [1842651]     Ответить | Цитировать Сообщить модератору
 Re: Фильтры в табилце, вопрос спецам.  [new]
Dim Grishin
Member

Откуда: Florida, US
Сообщений: 547
+ (я не говорил) фильтром фильтруется перекрёстная таблица объекта и ссылочные поля, по опредёлённым правилам, тем самым фильтруется табилца объекты. это для тех случаев, когда в фильтре выберают значения из списка.
2 сен 05, 18:56    [1842654]     Ответить | Цитировать Сообщить модератору
 Re: Фильтры в табилце, вопрос спецам.  [new]
GreenSunrise
Member

Откуда:
Сообщений: 12310
Dim Grishin
+ (я не говорил) фильтром фильтруется перекрёстная таблица объекта и ссылочные поля, по опредёлённым правилам, тем самым фильтруется табилца объекты. это для тех случаев, когда в фильтре выберают значения из списка.

Гм. Возможно, этот набор слов для вас что-то и означает... Для меня его смысл остался загадкой.

Чего вы еще хотите? Есть возможность выполнять динамические запросы. Ну так стройте их и выполняйте. Какие проблемы?
2 сен 05, 19:15    [1842694]     Ответить | Цитировать Сообщить модератору
 Re: Фильтры в табилце, вопрос спецам.  [new]
GreenSunrise
Member

Откуда:
Сообщений: 12310
Dim Grishin
+ (я не говорил) фильтром фильтруется перекрёстная таблица объекта и ссылочные поля, по опредёлённым правилам, тем самым фильтруется табилца объекты. это для тех случаев, когда в фильтре выберают значения из списка.

:-)
Так то оно так, ежели так все, все не все, но дескать, мол, конечно, оно бы и не надо, да ладно, а случись такое, вот тебе и пожалуйста.
2 сен 05, 19:19    [1842701]     Ответить | Цитировать Сообщить модератору
Все форумы / Microsoft SQL Server Ответить