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

Откуда:
Сообщений: 11
Всем привет. Помогите, пожалуйста, настроить фильтр. Вот работа запроса:
[IMG]http://savepic.org/3777412.png[/IMG]
Вот здесь явно задано что отбирать:
inner join _Документ120 on _Документ120._ID = _Main._Data and _Документ120._Data = '8140:b93e0022640def1a11e2bd81d8c68a4e}'
Вот, собственно, сама таблица _Документ120:
[IMG]http://savepic.org/3770244.png[/IMG]
То есть по внутреннему соединению с заданным фильтром можно отобрать всего одну строку!
Так почему в запросе отображается 6 строк?
Причем, когда удаляю конструкцию "and _Документ120._Data = '8140:b93e0022640def1a11e2bd81d8c68a4e}'" в запрос выводится не 6, а 8 строк. В общем, где-то не догоняю.
Спасибо!
24 июн 13, 08:41    [14471746]     Ответить | Цитировать Сообщить модератору
 Re: Прошу помощи с запросом. Странно работает фильтр.  [new]
hoha_ftf
Member

Откуда: ЕКБ
Сообщений: 42
Beholder07,

А сколько подходящих строк в _Main?
Джойнятся разные значения в колонки _TransactionID и _MetaData
24 июн 13, 09:09    [14471847]     Ответить | Цитировать Сообщить модератору
 Re: Прошу помощи с запросом. Странно работает фильтр.  [new]
alexeyvg
Member

Откуда: Moscow
Сообщений: 31912
Beholder07
Помогите, пожалуйста, настроить фильтр. Вот работа запроса:
А можно это в виде текста выложить?
24 июн 13, 09:14    [14471870]     Ответить | Цитировать Сообщить модератору
 Re: Прошу помощи с запросом. Странно работает фильтр.  [new]
Beholder07
Member

Откуда:
Сообщений: 11
hoha_ftf, Вы правы, как раз 6 строк. Такое впечатление, что соединяется только по _Main._Data. И игнорирует фильр. Но почему?
24 июн 13, 09:16    [14471889]     Ответить | Цитировать Сообщить модератору
 Re: Прошу помощи с запросом. Странно работает фильтр.  [new]
Beholder07
Member

Откуда:
Сообщений: 11
alexeyvg, да, конечно: текст запроса формируется динамически, в соответствии с выбранным фильтром:
--------------------------------------
select top 100 _Main._Level, _Main._Date, _Users._UserUID, isnull(_Hosts._Host,'') as _Host, _Main._MDData, _App._App, _Main._Connection,
_Main._Comment, _Main._TransactionID, isnull(_Transactions._Time,'') as _TranTime, isnull(_Transactions._Status,'') as _TransactionStatus, _Main._ServerName, _Main._Port,
_Main._SyncPort, _Metadatas._MetaDataPresentation as _MetaData, _Main._Data, _Main._DataPresentation, _Events._Event from _Main
left join _Users on _Users._ID = _Main._UserUID
left join _APP on _App._ID = _Main._App
left join _HOSTS on _Hosts._ID = _Main._Host
left join _Events on _Events._ID = _Main._Event
left join _Transactions on _Transactions._ID = _Main._TransactionID
left join _Metadatas on _Metadatas._ID = _Main._MetaData
inner join _Документ120 on _Документ120._ID = _Main._Data and _Документ120._Data = '8140:b93e0022640def1a11e2bd81d8c68a4e}'
WHERE _Date >= ' 20050101 00:00:00 ' and _Date <= ' 20130624 08:26:06 '
ORDER BY _Main._Date
-------------------------------------------
24 июн 13, 09:19    [14471901]     Ответить | Цитировать Сообщить модератору
 Re: Прошу помощи с запросом. Странно работает фильтр.  [new]
hoha_ftf
Member

Откуда: ЕКБ
Сообщений: 42
Beholder07,

Джойнятся таблицы не по фильтру ведь, а по _Документ120._ID = _Main._Data
Могу только предположить, что _Main._Data - поле не уникальное для документа
24 июн 13, 09:23    [14471922]     Ответить | Цитировать Сообщить модератору
 Re: Прошу помощи с запросом. Странно работает фильтр.  [new]
Beholder07
Member

Откуда:
Сообщений: 11
hoha_ftf, верно. А как настроить фильтр тогда? Если я переношу
and _Документ120._Data = '8140:b93e0022640def1a11e2bd81d8c68a4e}' из иннер джойна в WHERE
т.е. делаю:
WHERE _Date >= ' 20050101 00:00:00 ' and _Date <= ' 20130624 08:26:06 ' and _Документ120._Data = '8140:b93e0022640def1a11e2bd81d8c68a4e}'
- ругается на синтаксис.((
24 июн 13, 09:43    [14472020]     Ответить | Цитировать Сообщить модератору
 Re: Прошу помощи с запросом. Странно работает фильтр.  [new]
hoha_ftf
Member

Откуда: ЕКБ
Сообщений: 42
Beholder07,

Что хранится в _Main? Операции над документом?
И что вы хотите получить?
24 июн 13, 09:50    [14472056]     Ответить | Цитировать Сообщить модератору
 Re: Прошу помощи с запросом. Странно работает фильтр.  [new]
Ruuu
Member

Откуда: Иркутск
Сообщений: 4272
Beholder07
т.е. делаю:
WHERE _Date >= ' 20050101 00:00:00 ' and _Date <= ' 20130624 08:26:06 ' and _Документ120._Data = '8140:b93e0022640def1a11e2bd81d8c68a4e}'
- ругается на синтаксис.((
Как ругается, матом или всё же пишет какую-то ошибку?
24 июн 13, 09:51    [14472066]     Ответить | Цитировать Сообщить модератору
 Re: Прошу помощи с запросом. Странно работает фильтр.  [new]
Beholder07
Member

Откуда:
Сообщений: 11
hoha_ftf , в _Main хранится всё до кучи. Требуемые данные, в зависимости от настроенного фильтра выбираются с помощью запроса, который я привел выше.
Ruuu, сорри, тупанул. Синтаксис поправил, результат работы запроса - совершенно идентичен предыдущему. Т.е. выбирается 6 строк, вместо одной.
24 июн 13, 10:05    [14472115]     Ответить | Цитировать Сообщить модератору
 Re: Прошу помощи с запросом. Странно работает фильтр.  [new]
hoha_ftf
Member

Откуда: ЕКБ
Сообщений: 42
Beholder07,

тогда думайте над еще одним фильтром для "кучи"
24 июн 13, 10:07    [14472125]     Ответить | Цитировать Сообщить модератору
 Re: Прошу помощи с запросом. Странно работает фильтр.  [new]
Beholder07
Member

Откуда:
Сообщений: 11
hoha_ftf, спасибо. Действительно, надо джойнить еще по одному фильру :)
24 июн 13, 10:46    [14472415]     Ответить | Цитировать Сообщить модератору
 Re: Прошу помощи с запросом. Странно работает фильтр.  [new]
MasterZiv
Member

Откуда: Питер
Сообщений: 34697
Beholder07
hoha_ftf, Вы правы, как раз 6 строк. Такое впечатление, что соединяется только по _Main._Data. И игнорирует фильр. Но почему?



Глубинные причины ты хочешь знать?
24 июн 13, 12:45    [14473453]     Ответить | Цитировать Сообщить модератору
 Re: Прошу помощи с запросом. Странно работает фильтр.  [new]
MasterZiv
Member

Откуда: Питер
Сообщений: 34697
Beholder07
hoha_ftf, спасибо. Действительно, надо джойнить еще по одному фильру :)

, join мить про фильтру невозможно,
У тебя наверняка сороки про другим join множатся.
24 июн 13, 12:51    [14473496]     Ответить | Цитировать Сообщить модератору
Все форумы / Microsoft SQL Server Ответить