Главная страница
Top.Mail.Ru    Яндекс.Метрика
Текущий архив: 2004.02.06;
Скачать: CL | DM;

Вниз

Как рассчитать в запросе сумму построчно?   Найти похожие ветки 

 
Denis ©   (2004-01-12 16:26) [0]

Здравствуйте.
Подскажите пожалуйста, как можно реализовать сабж в MSSQL?
Нужно привести в порядок такой запрос(конструкцию, выделенную линиями нужно исправить):

SELECT dbo.[ORGAN ZAK].[NAME ORG], dbo.MESPLANDENGI.SUMMES,

col1=case when day(postdengi.datapost)=1 then postdengi.dengi end,

... ... ...

col31=case when day(postdengi.datapost)=31 then postdengi.dengi end,

{-------------------------------------------------
(col1+col2+col3+col4+col5+col6+col7+col8+col9+col10+col11+col12+col13+col14+col15+col16+
col17+col18+col19+col20+col21+col22+col23+col24+col25+col26+col27+col28+col29+col30+col31) as itogo,
(itogo-dbo.MESPLANDENGI.SUMMES)as saldo, (itogo/dbo.MESPLANDENGI.SUMMES)as procentpl
------------------------------------------------}

FROM ...


 
Johnmen ©   (2004-01-12 16:30) [1]

Вызывает сильное сомнение применимость алиаса поля в селективном выражении... itogo-dbo.MESPLANDENGI.SUMMES


 
Denis ©   (2004-01-12 16:38) [2]

Согласен. Это выражение продиктовано отчаянием :-(
Его (и не только) и нужно заменить правильной конструкцией...


 
Ega23 ©   (2004-01-12 16:38) [3]

А в Query вычисляемое поле добавить? И в OnCalcFields сумму считать?


 
Denis ©   (2004-01-12 16:42) [4]

>Ega23 © (12.01.04 16:38) [3]

Этот прием я использовал до этого времени.
Но в данный момент задался вопросом - как это сделать именно на SQL?


 
ZrenBy ©   (2004-01-12 16:48) [5]

Можно

select
dbo.[ORGAN ZAK].[NAME ORG],
dbo.MESPLANDENGI.SUMMES,
c1,...,c31,itogo,
(itogo-dbo.MESPLANDENGI.SUMMES)as saldo,
(itogo/dbo.MESPLANDENGI.SUMMES)as procentpl
from(
select
dbo.[ORGAN ZAK].[NAME ORG],
dbo.MESPLANDENGI.SUMMES,
c1,...,c31,
itogo = c1+...+c31
from(
select
dbo.[ORGAN ZAK].[NAME ORG],
dbo.MESPLANDENGI.SUMMES,
c1 = ...
...
c31 =
from ...
)Q1)Q2

Оптимизатор отдыхает


 
Denis ©   (2004-01-12 16:53) [6]

Спасибо, попробую.
Только что означает )Q1)Q2? Вложенность запросов?


 
Denis ©   (2004-01-13 10:21) [7]

>Только что означает )Q1)Q2? Вложенность запросов?

Не знал, что вложенные запросы без этих символов не закрываются...

Если кому интересно, я нашел решение без вложенных запросов, может быть кому-то пригодится:

SELECT MAX(dbo.[ORGAN ZAK].[NAME ORG]) as Nameorg,SUM( dbo.MESPLANDENGI.SUMMES) as summes,

col1=sum(case when day(postdengi.datapost)=1 then postdengi.dengi end),
... ... ...
col31=Sum(case when day(postdengi.datapost)=31 then postdengi.dengi end),

itogo= Sum(dengi),
procentpl=sum(dengi)*100/sum(summes),
saldo=sum(dengi)-sum(summes)

FROM ...

GROUP BY dbo.[ORGAN ZAK].[KOD ORG]



Страницы: 1 вся ветка

Текущий архив: 2004.02.06;
Скачать: CL | DM;

Наверх




Память: 0.48 MB
Время: 0.018 c
1-16291
Serge
2004-01-28 14:24
2004.02.06
Количество символов в строке RichEdit-a ???


8-16530
AlexanderSK
2003-09-23 15:01
2004.02.06
Запись звука с микрофона


4-16788
Dimmu
2003-12-01 14:28
2004.02.06
Создание сервиса используя TService


14-16587
Knight
2004-01-10 17:27
2004.02.06
Не могу загрузить комп...


11-16200
Boguslaw
2003-05-22 20:05
2004.02.06
Any problems with TKOlTimer in KOL 1.71 - 1.73 ?