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

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

У меня ощущение, что данная запись некорректна
select a.regn as 'regn',
'139' as 'code',
'АКТИВ' as 'lev1',
'Облигации' as 'lev2',
'Переоценка обл' as 'lev3',
(SUM(a.iitg) - SUM(b.iitg)) as 'balance', 
(SUM(a.oitga) - SUM(b.oitga)) as 'turn_a', 
(SUM(a.oitgp) - SUM(b.oitgp)) as 'turn_p', 
a.dt as 'dt'
from 
dbo.[122011B1] a, 
dbo.[122011B1] b

where a.num_sc in ('50221','50121') and b.num_sc in ('50220','50120')
group by a.REGN,a.DT
6 мар 12, 17:40    [12205621]     Ответить | Цитировать Сообщить модератору
 Re: помощь в запросе  [new]
PlanB
Member

Откуда: Moscow
Сообщений: 2767
общая формула '50121' + '50221' - '50220' - '50120'
6 мар 12, 17:42    [12205643]     Ответить | Цитировать Сообщить модератору
 Re: помощь в запросе  [new]
iap
Member

Откуда: Москва
Сообщений: 47142
PlanB,

лучше из одной таблицы и SUM(CASE WHEN ... THEN ... ELSE ... END*iitg).
6 мар 12, 17:48    [12205705]     Ответить | Цитировать Сообщить модератору
 Re: помощь в запросе  [new]
SQL2008
Member

Откуда: Москва
Сообщений: 4478
...
from 
dbo.[122011B1] a, 
dbo.[122011B1] b

Получите декартово произведение. Вам это нужно?
Правильно сказал iap - читайте из одной таблицы.
7 мар 12, 01:47    [12207376]     Ответить | Цитировать Сообщить модератору
 Re: помощь в запросе  [new]
SQL2008
Member

Откуда: Москва
Сообщений: 4478
PlanB
общая формула '50121' + '50221' - '50220' - '50120'

select sum(case 
 when num_sc = '50221' then iitg
 when num_sc = '50121' then iitg
 when num_sc = '50220' then -iitg
 when num_sc = '50120' then -iitg
 else 0 end) as 'balance',

// далее аналогично с полями oitga и oitgp

from 
dbo.[122011B1] 
7 мар 12, 01:51    [12207381]     Ответить | Цитировать Сообщить модератору
 Re: помощь в запросе  [new]
SQL2008
Member

Откуда: Москва
Сообщений: 4478
Если записей в таблице много, то правильнее конечно добавить
where num_sc in ('50221','50121','50220','50120')
7 мар 12, 01:53    [12207383]     Ответить | Цитировать Сообщить модератору
 Re: помощь в запросе  [new]
PlanB
Member

Откуда: Moscow
Сообщений: 2767
SQL2008, спасибо. не знал, что так можно!
7 мар 12, 09:08    [12207659]     Ответить | Цитировать Сообщить модератору
Все форумы / Microsoft SQL Server Ответить