Добро пожаловать в форум, Guest  >>   Войти | Регистрация | Поиск | Правила | В избранное | Подписаться
Все форумы / IBM DB2, WebSphere, IMS, U2, etc Новый топик    Ответить
 не могу понять sql запрос  [new]
ikeres
Member

Откуда:
Сообщений: 11
СУБД IBM DB2. Есть запрос, который говорят когда-то до меня работал:

select d.STRAH_NUM,d.FAM,d.IMYA,d.OTCHESTVO
from DECLARATION d, PAYMENT p
WHERE p.STRAH_NUM = d.STRAH_NUM and d.STRAH_NUM in (select p.strah_num
from PAYMENT p
where ((YEAR(p.date_enter)<=2013 and YEAR(p.date_poruch)=2013)
or (YEAR(p.date_poruch)<=2013 and YEAR(p.date_enter) is null))
)
and d.STRAH_NUM not in (select p.strah_num
from PAYMENT p
where YEAR(p.date_enter)=2014 and p.sum_woker>0
)
GROUP BY d.STRAH_NUM,d.FAM,d.IMYA,d.OTCHESTVO
ORDER by d.FAM

и сейчас запускаю - выдает ноль строк.
Переделал:

select d.STRAH_NUM,d.FAM,d.IMYA,d.OTCHESTVO
from DECLARATION d, (select distinct w.strah_num from PAYMENT w
where ((YEAR(w.date_enter)<=2013 and YEAR(w.date_poruch)<=2013) or
(YEAR(w.date_poruch)<=2013 and YEAR(w.date_enter) is null))
except
select distinct q.strah_num
from PAYMENT q
where YEAR(q.date_enter)=2014
) p
WHERE p.STRAH_NUM = d.STRAH_NUM
GROUP BY d.STRAH_NUM,d.FAM,d.IMYA,d.OTCHESTVO, D.NUM_RAION
ORDER by d.FAM

выдает нормально. В чем дело?
23 сен 14, 13:49    [16610194]     Ответить | Цитировать Сообщить модератору
 Re: не могу понять sql запрос  [new]
Добрый Э - Эх
Guest
ikeres,

Скорее всего NOT IN подзапрос в качестве одного из своих значений стал возвращать NULL.
Попробуй для проверки этой версии добавить в него условие and p.strah_num is not null:
select d.STRAH_NUM,d.FAM,d.IMYA,d.OTCHESTVO
from DECLARATION d, PAYMENT p
WHERE p.STRAH_NUM = d.STRAH_NUM and d.STRAH_NUM in (select p.strah_num 
from PAYMENT p 
where	((YEAR(p.date_enter)<=2013 and YEAR(p.date_poruch)=2013)
or (YEAR(p.date_poruch)<=2013 and YEAR(p.date_enter) is null))
) 
and d.STRAH_NUM not in (select p.strah_num
from PAYMENT p 
where YEAR(p.date_enter)=2014 and p.sum_woker>0
and p.strah_num is not null
) 
GROUP BY d.STRAH_NUM,d.FAM,d.IMYA,d.OTCHESTVO
ORDER by d.FAM
23 сен 14, 14:01    [16610273]     Ответить | Цитировать Сообщить модератору
 Re: не могу понять sql запрос  [new]
ikeres
Member

Откуда:
Сообщений: 11
Добрый Э - Эх, спасибо. добавил как вы и говорили, и стало нормально!
24 сен 14, 04:01    [16613610]     Ответить | Цитировать Сообщить модератору
Все форумы / IBM DB2, WebSphere, IMS, U2, etc Ответить