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

Откуда:
Сообщений: 283
Подскажите пожалуйста!!! Написал скрипт который считает заявки по организациям и дополнительную информацию по ним
SELECT Distinct 
 o.PR_KEY, o.ORG_NAME, o.Rang ,Count(P.PR_KEY)Zayv
 ,Vstr=(Select Count(PR_KEY) From ORG_Information Where Type_Cont=8 AND Org_key=o.PR_KEY)
FROM Organizations o 
 LEFT JOIN Org_Information I on I.ORG_KEY = O.PR_KEY 
 LEFT JOIN Managers m ON m.ORG_ID = o.PR_KEY
 LEFT JOIN Primary_Request P on P.ORG_KEY = O.PR_KEY 
group by o.PR_KEY, o.ORG_NAME, o.Rang, o.OTM , m.Dismissed, m.Person_ID, I.Data, I.Type_Cont
having (o.OTM=0)  AND (m.Dismissed=1) AND (m.Person_ID=212) AND I.Data>= '30.04.2011' AND I.Data<='20.10.2011' 
order by org_name

Как можно заменить строчку Vstr=(Select Count(PR_KEY) From ORG_Information Where Type_Cont=8 AND Org_key=o.PR_KEY) ' аналогично выражению Count(P.PR_KEY)Zayv ??? (ps начальнику эта строка не нравится)
20 окт 11, 15:39    [11473469]     Ответить | Цитировать Сообщить модератору
 Re: Заменить подзапрос на агрегат  [new]
HandKot
Member

Откуда: Sergiev Posad
Сообщений: 3058
Sum(Case When Type_Cont=8 Then 1 Else 0 End)
20 окт 11, 16:43    [11474018]     Ответить | Цитировать Сообщить модератору
 Re: Заменить подзапрос на агрегат  [new]
HandKot
Member

Откуда: Sergiev Posad
Сообщений: 3058
хотя учитывая
 I.Data>= '30.04.2011' AND I.Data<='20.10.2011' 
мой вариант не подойдет
20 окт 11, 16:45    [11474030]     Ответить | Цитировать Сообщить модератору
Все форумы / Microsoft SQL Server Ответить