Добро пожаловать в форум, Guest >> Войти | Регистрация | Поиск | Правила | | В избранное | Подписаться | ||
Все форумы / Microsoft SQL Server |
![]() ![]() |
Byrbl Member Откуда: Сообщений: 7 |
Здравствуйте, имеется запрос, к базеSELECT DISTINCT FM_DISCOUNT.FM_DISCOUNT_ID FROM FM_DISCOUNT FM_DISCOUNT LEFT OUTER JOIN FM_SERV_DISCOUNT FM_SERV_DISCOUNT ON FM_DISCOUNT.FM_DISCOUNT_ID = FM_SERV_DISCOUNT.FM_DISCOUNT_ID LEFT OUTER JOIN DIR_SERV DIR_SERV ON (DIR_SERV_ID = 0) LEFT OUTER JOIN PATDIREC PATDIREC ON PATDIREC.PATDIREC_ID = DIR_SERV.PATDIREC_ID WHERE (FM_SERV_DISCOUNT.FM_SERV_ID = 11163 or PATDIREC.CITO = 1) который должен выдавать пустой результат, но выдает все idы из fm_discount. Если убрать одно из условий из where, то получается пустой результат, т.е. то что и должно быть. Как такое может быть и куда копать? На всякий случай прилагаю план выполнения. При чем при переносе базы на другой сервер запрос работает правильно, т.е. выдает ноль строк, но при этом в плане перед заключительным селектом присутствует Filter. К сообщению приложен файл. Размер - 51Kb |
23 июн 14, 13:59 [16206408] Ответить | Цитировать Сообщить модератору |
Гавриленко Сергей Алексеевич Member Откуда: Moscow Сообщений: 37143 |
Сюда копать: LEFT OUTER JOIN DIR_SERV DIR_SERV ON (DIR_SERV_ID = 0) |
23 июн 14, 14:02 [16206448] Ответить | Цитировать Сообщить модератору |
Byrbl Member Откуда: Сообщений: 7 |
К сожалению запрос поменять не могу. Да и почему тогда на разных серверах выполняется по разному? |
23 июн 14, 14:05 [16206482] Ответить | Цитировать Сообщить модератору |
Гавриленко Сергей Алексеевич Member Откуда: Moscow Сообщений: 37143 |
|
||||
23 июн 14, 14:09 [16206500] Ответить | Цитировать Сообщить модератору |
iap Member Откуда: Москва Сообщений: 47047 |
ЕслиWHERE FM_SERV_DISCOUNT.FM_SERV_ID = 11163, то зачем LEFT OUTER JOIN FM_SERV_DISCOUNT??? |
23 июн 14, 14:09 [16206503] Ответить | Цитировать Сообщить модератору |
Byrbl Member Откуда: Сообщений: 7 |
Запрос от внешней программы, внести изменения в которую нельзя. При переносе базы на новый сервер, результат запроса получается другой, что сказывается на функционале, хотелось бы, чтоб все было по старому. |
23 июн 14, 14:13 [16206538] Ответить | Цитировать Сообщить модератору |
Byrbl Member Откуда: Сообщений: 7 |
Таблица fm_serv_discount пустая, в patdirec записей с cito=1 нет. |
23 июн 14, 14:15 [16206546] Ответить | Цитировать Сообщить модератору |
Гавриленко Сергей Алексеевич Member Откуда: Moscow Сообщений: 37143 |
Покажите нормальный план выполнения в текстовом или xml виде. |
23 июн 14, 14:17 [16206559] Ответить | Цитировать Сообщить модератору |
Гавриленко Сергей Алексеевич Member Откуда: Moscow Сообщений: 37143 |
Еще select @@version покажите. |
23 июн 14, 14:17 [16206561] Ответить | Цитировать Сообщить модератору |
Byrbl Member Откуда: Сообщений: 7 |
К сообщению приложен файл (Plan.xml - 25Kb) cкачать ![]() |
23 июн 14, 14:20 [16206578] Ответить | Цитировать Сообщить модератору |
Byrbl Member Откуда: Сообщений: 7 |
Microsoft SQL Server 2008 (RTM) - 10.0.1600.22 (X64) Jul 9 2008 14:17:44 Copyright (c) 1988-2008 Microsoft Corporation Enterprise Edition (64-bit) on Windows NT 6.0 <X64> (Build 6001: Service Pack 1) |
23 июн 14, 14:20 [16206582] Ответить | Цитировать Сообщить модератору |
Гавриленко Сергей Алексеевич Member Откуда: Moscow Сообщений: 37143 |
|
||
23 июн 14, 14:24 [16206605] Ответить | Цитировать Сообщить модератору |
Byrbl Member Откуда: Сообщений: 7 |
Понятно. Спасибо. |
23 июн 14, 14:25 [16206613] Ответить | Цитировать Сообщить модератору |
Все форумы / Microsoft SQL Server | ![]() |