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

Откуда: Moscow
Сообщений: 2767
Добрый день!

Есть простенький запрос. Нельзя ли как-то упростить его запись? Структуру таблиц, если это необходимо, могу предствить.

select 
	a.regn,						--регномер
	b.name,						--наименование
	(a.kap*100)/a.h1 as 'aor',			--активы под риском
	a.kap,						--капитал
	c.sum_i - d.sum_i as 'finrez',			--финрез (доходы-расходы)
	a.h1,a.h2,a.h3,a.h4,a.h7,a.h9_1,a.h10_1,a.h12,	--нормативы
	sum (e.iitg) as 'test'				--тестируемый показатель (вложения в долевые цб)
from sys_anl.normativ201103 a, sys_anl.catalog_bank b, sys_anl.profit201103 c, sys_anl.profit201103 d, sys_anl.balance201103 e

where	(a.regn=b.regn) and (a.regn=c.regn) and (a.regn=d.regn) and (a.regn=e.regn) and
	(c.code like '10000') and (d.code = '20000') and
	((e.wbs in ('50905','50106','50107','50108','50109','50110','50116','50118','50121','50207','50208','50209','50210','50211','50214','50218','50221','50307','50308','50309','50310','50311','50313','50318','50505')) or ((left(e.wbs ,3) in ('506','507')) and (e.ap = '1')))
group by a.regn, b.name, (a.kap*100)/a.h1, a.kap, a.h1, a.h2, a.h3, a.h4, a.h7, a.h9_1, a.h10_1, a.h12, (c.sum_i - d.sum_i)
order by a.kap desc
Спасибо!
24 авг 11, 10:31    [11169247]     Ответить | Цитировать Сообщить модератору
 Re: оптимизация запроса  [new]
Добрый Э - Эх
Guest
А что тут упрощать-то ?! Он ведь и так "простенький"...
24 авг 11, 10:43    [11169324]     Ответить | Цитировать Сообщить модератору
 Re: оптимизация запроса  [new]
Дедушка
Member

Откуда: Город трёх революций
Сообщений: 5115
то есть "оптимизация" заключается в упрощении записи?
24 авг 11, 10:43    [11169327]     Ответить | Цитировать Сообщить модератору
 Re: оптимизация запроса  [new]
Baddy
Member

Откуда: Харьков
Сообщений: 174
PlanB,

странное условие...
c.code like '10000'
24 авг 11, 10:48    [11169363]     Ответить | Цитировать Сообщить модератору
 Re: оптимизация запроса  [new]
PlanB
Member

Откуда: Moscow
Сообщений: 2767
Дедушка
то есть "оптимизация" заключается в упрощении записи?
ага :) это нереально? мне до гуру далеко в части sql. вот и подумал, что можно как-то проще получить результат. дело в том, что на него ещё будут навешиваться другие sum(). т.е. будут расти строки, например так:
sum (f.iitg) as 'test2'
--------------
from sys_anl.normativ201103 a, sys_anl.catalog_bank b, sys_anl.profit201103 c, sys_anl.profit201103 d, sys_anl.balance201103 e, sys_anl.balance201103 f
--------------
and ((f.wbs in '20202', '20203')) and (e.ap = '1')))
боюсь, что перемудрю..
24 авг 11, 10:51    [11169395]     Ответить | Цитировать Сообщить модератору
 Re: оптимизация запроса  [new]
PlanB
Member

Откуда: Moscow
Сообщений: 2767
Baddy
PlanB,странное условие...
c.code like '10000'
работает же дело в том, что данное поле может восприниматься как текст.. хотя, да, логичнее бы было всё с In написать...
24 авг 11, 10:53    [11169406]     Ответить | Цитировать Сообщить модератору
 Re: оптимизация запроса  [new]
alexeyvg
Member

Откуда: Moscow
Сообщений: 31956
PlanB
Baddy
PlanB,странное условие...
c.code like '10000'
работает же дело в том, что данное поле может восприниматься как текст.. хотя, да, логичнее бы было всё с In написать...
Вопрос был - почему like, а не =
24 авг 11, 11:06    [11169528]     Ответить | Цитировать Сообщить модератору
 Re: оптимизация запроса  [new]
PlanB
Member

Откуда: Moscow
Сообщений: 2767
alexeyvg
PlanB
пропущено...
работает же дело в том, что данное поле может восприниматься как текст.. хотя, да, логичнее бы было всё с In написать...
Вопрос был - почему like, а не =
так текст может быть.. не работает с =
24 авг 11, 11:08    [11169548]     Ответить | Цитировать Сообщить модератору
Все форумы / Microsoft SQL Server Ответить