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

Откуда:
Сообщений: 1
Есть таблица движений по счету:
#tmp (Period datetime, AmountStart numeric(18,2), Debet numeric(18,2), Credit numeric(18,2), AmountEnd numeric(18,2))


нужно свернуть ее по дням, решил задачу "в лоб" (не пинать, в sql я не силен):

select  
        DATEADD(dd, 0, DATEDIFF(dd, 0, t.Period)),
        (select top 1 t2.AmountEnd from #tmp t2 where DATEADD(dd, 0, DATEDIFF(dd, 0, t2.Period)) = DATEADD(dd, 0, DATEDIFF(dd, 0, t.Period)) order by t2.Period desc) + SUM(t.Credit) - SUM(t.Debet) AmntStart,
        SUM(t.Debet) Deb,
        SUM(t.Credit) Cred,
        (select top 1 t2.AmountEnd from #tmp t2 where DATEADD(dd, 0, DATEDIFF(dd, 0, t2.Period)) = DATEADD(dd, 0, DATEDIFF(dd, 0, t.Period)) order by t2.Period desc) AmntEnd
from #tmp t
group by DATEADD(dd, 0, DATEDIFF(dd, 0, t.Period))


как соптимизировать или решить задачу правильно?
заранее благодарю!
23 май 12, 23:53    [12604937]     Ответить | Цитировать Сообщить модератору
Все форумы / Microsoft SQL Server Ответить