Отбор по вычисляемому полю второй табицы

M
На сайте с 03.06.2012
Offline
73
435

Здравствуйте, есть следующий запрос


SELECT
t.*,
(select count(*) from USERRELEASES where USERRELEASES.RELEASE_ID=release.RELEASE_ID and USERRELEASES.USERRELEASE_CURRENTFLAG=1) as RELEASE_NBINSTALLED,
(select sum(case when USERRELEASES.USERRELEASE_CURRENTFLAG=0 then 1 else 0 end) FROM USERRELEASES where USERRELEASES.RELEASE_ID=release.RELEASE_ID) as RELEASE_HISTORYNB,
(select count(*) from RELEASES t2 where t2.VERSION_ID=t.VERSION_ID) as INSTALL_VERSION,
release.*
FROM [dbo].[VERSIONS] [t]
LEFT OUTER JOIN [dbo].[RELEASES] [release] ON ([release].[VERSION_ID]=[t].[VERSION_ID])
WHERE (t.VERSION_VERSION1<>99)

Нужно отобрать ГДЕ RELEASE_NBINSTALLED > 0 и где меньше нуля

пробовал так


SELECT
t.*,
(select count(*) from USERRELEASES where USERRELEASES.RELEASE_ID=release.RELEASE_ID and USERRELEASES.USERRELEASE_CURRENTFLAG=1) as RELEASE_NBINSTALLED,
(select sum(case when USERRELEASES.USERRELEASE_CURRENTFLAG=0 then 1 else 0 end) FROM USERRELEASES where USERRELEASES.RELEASE_ID=release.RELEASE_ID) as RELEASE_HISTORYNB,
(select count(*) from RELEASES t2 where t2.VERSION_ID=t.VERSION_ID) as INSTALL_VERSION,
release.*
FROM [dbo].[VERSIONS] [t]
LEFT OUTER JOIN [dbo].[RELEASES] [release] ON ([release].[VERSION_ID]=[t].[VERSION_ID])
WHERE (t.VERSION_VERSION1<>99)
AND
release.RELEASE_ID IN
(select USERRELEASES.RELEASE_ID from USERRELEASES where USERRELEASES.RELEASE_ID=release.RELEASE_ID GROUP BY USERRELEASES.RELEASE_ID HAVING sum(USERRELEASES.USERRELEASE_CURRENTFLAG) > 0)

Работает только если нужно выбрать больше нуля работает, а меньше нет.

Помогите пожалуйста как решить этот вопрос

D
На сайте с 27.09.2008
Offline
63
#1

Например вот так:

SELECT temp1.* FROM temp1 as (ваш_сложный_запрос) where RELEASE_NBINSTALLED > 0

Нужно лучше через HAVING. А еще лучше создать поле RELEASE_NBINSTALLED и через тригер обновлять.

__________________

гугл поисковая система

- Продам скрипт перелинковки сайта - https://nulled.cc/threads/311169/

Авторизуйтесь или зарегистрируйтесь, чтобы оставить комментарий