powered by simpleCommunicator - 2.0.59     © 2026 Programmizd 02
Целевая тема:
Создать новую тему:
Автор:
Закрыть
Цитировать
Форумы / IBM DB2, WebSphere, IMS, U2 [игнор отключен] [закрыт для гостей] / Проблема с запросом(distinct)
7 сообщений из 7, страница 1 из 1
Проблема с запросом(distinct)
    #36279285
ananas2
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Добрый день!

Ситуация такая. Есть запрос, представленый ниже который валится с ошибкой SQL0101N The statement is too long or too complex. Таблицы по размеру не большие до 3к записей и нагрузки судя по монитору особой нет. Валится запрос на distinct, без него все работает - возвращает 6 записей. Вопрос почему и как это можно обойти. Пробовал и with и select from select - не помогает :(. План запроса выложить не могу, ибо explain валится с той же ошибкой...

И еще одна странная вещь. Есть практически одинаковая по структуре база(практически - это в некоторых таблицах порядок полей другой и данные немного различаются) и на ней он работает прекрасно с distinct'oм. По настройкам в db cfg полностью идентичны...

select distinct
STORE.SITE_NAME,
REPAIR.REPAIR_ID,
REPAIR.REPAIRER_REF,
REPAIR.SUBMITTED_DT,
REPAIR.CUSTOMER_FIRST_NAME,
REPAIR.CUSTOMER_LAST_NAME,
REPAIR.CUSTOMER_CTN,
REPAIR.NOTIFY_BY_SMS,
REPAIR.SMS_CONTACT_CTN,
REPAIR.NOTIFY_BY_EMAIL,
REPAIR.EMAIL_CONTACT,
REPAIR.NOTIFY_BY_PHONE,
REPAIR.PHONE_CONTACT_CTN,
REPAIR.IN_IMEI,
REPAIR.OUT_IMEI,
MANUFACTURER.NAME,
HANDSET.MODEL,
REPAIR.OUT_OF_RANGE_MODEL,
loan.LOAN_IMEI,
REPAIR_STATUS_CODE.CODE AS REPAIR_STATUS_CODE,
REPAIR_STATUS_CODE.SHORT_DESCRIPTION,
REPAIR_STATUS_CODE.LONG_DESCRIPTION,
REPAIR_STATUS.REPAIR_STATUS_DT
from
REACT.REPAIR REPAIR
left outer join REACT.LOAN_HANDSET loan on repair.REPAIR_ID = loan.REPAIR_ID
left outer join REACT.REPAIR_STATUS REPAIR_STATUS on REPAIR_STATUS.REPAIR_ID = REPAIR.REPAIR_ID and REPAIR_STATUS.REPAIR_STATUS_ID = REPAIR.LAST_REPAIR_STATUS_ID
left outer join REACT.REPAIR_STATUS_CODE REPAIR_STATUS_CODE on REPAIR_STATUS_CODE.REPAIR_STATUS_CODE_ID = REPAIR_STATUS.REPAIR_STATUS_CODE_ID
inner join REACT.STORE STORE on STORE.STORE_ID = REPAIR.STORE_ID and REPAIR.STORE_ID = 9000
left outer join EDEN.HANDSET HANDSET on REPAIR.HANDSET_ID = HANDSET.PRODUCT_ID
left outer join EDEN.MATERIAL_PRODUCT PRODUCT on REPAIR.HANDSET_ID = PRODUCT.PRODUCT_ID
left outer join EDEN.MANUFACTURER MANUFACTURER on
(
(REPAIR.HANDSET_ID is not null and PRODUCT.MANUFACTURER_ID = MANUFACTURER.MANUFACTURER_ID)
or (REPAIR.HANDSET_ID is null and REPAIR.MANUFACTURER_ID = MANUFACTURER.MANUFACTURER_ID)
)
where
(
loan_imei is null
or
loan.datetime_lent = (
select max(loan2.datetime_lent)
from REACT.LOAN_HANDSET loan2
where repair.REPAIR_ID = loan2.REPAIR_ID
)
)
and
(REPAIR.STORE_ID = STORE.STORE_ID or (STORE.FORMER_LOCATION_ID is not null and REPAIR.STORE_ID = STORE.FORMER_LOCATION_ID))
and
REPAIR_STATUS_CODE.CODE not in ('STORE:NOT-RECEIVED-FRM-REP', 'STORE:CANCELLED-CLOSED', 'STORE:CANCELLED-COLLECTED', 'STORE:COLLECTED-CLOSED', 'STORE:AWAIT-TILL-COMPLETION');
...
Рейтинг: 0 / 0
Проблема с запросом(distinct)
    #36279325
buven
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
А если вместо Distinct группировку по всем столбцам использоваться тоже валится?

Проводить жизнь в ожидании мессии, который придёт и спасёт мир, всё-равно, что ждать палку в тетрисе.
Даже если и появится, то ты к тому времени наберёшь такую гору дерьма, что те будет уже абсолютно пох... :)
...
Рейтинг: 0 / 0
Проблема с запросом(distinct)
    #36279355
buven
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Кстати здесь похожую проблему обсуждали. Может натолкнет на мысли.

Проводить жизнь в ожидании мессии, который придёт и спасёт мир, всё-равно, что ждать палку в тетрисе.
Даже если и появится, то ты к тому времени наберёшь такую гору дерьма, что те будет уже абсолютно пох... :)
...
Рейтинг: 0 / 0
Проблема с запросом(distinct)
    #36279428
Mark Barinstein
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
ananas2,

Добрый день.

Какая версия и фикс db2?
...
Рейтинг: 0 / 0
Проблема с запросом(distinct)
    #36279766
ananas2
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
А с group by прокатило, спасибо, buven!

Марк, V8.FP10. Любопытно, это дистинкт так окривляет оптимизатор, или другая причина?
...
Рейтинг: 0 / 0
Проблема с запросом(distinct)
    #36279922
Mark Barinstein
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
ananas2Марк, V8.FP10. Любопытно, это дистинкт так окривляет оптимизатор, или другая причина?Если в Fix List for DB2 UDB Version 8 поискать по SQL0101, то найдётся несколько выявленных проблем.
Если есть возможность, поставьте последний фикс и проверьте...
...
Рейтинг: 0 / 0
Проблема с запросом(distinct)
    #36279996
ananas2
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Mark Barinsteinananas2Марк, V8.FP10. Любопытно, это дистинкт так окривляет оптимизатор, или другая причина?Если в Fix List for DB2 UDB Version 8 поискать по SQL0101, то найдётся несколько выявленных проблем.
Если есть возможность, поставьте последний фикс и проверьте...

Да, нашел, 15-м фикспаком лечится) Спасибо, за ссылку, Марк
...
Рейтинг: 0 / 0
7 сообщений из 7, страница 1 из 1
Форумы / IBM DB2, WebSphere, IMS, U2 [игнор отключен] [закрыт для гостей] / Проблема с запросом(distinct)
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


Просмотр
0 / 0
Close
Debug Console [Select Text]