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

Откуда:
Сообщений: 186
Приветствую всех.
есть таблица ежедневных остатков:

create table #t(id int, name varchar(100), summa int, offdate datetime)
insert into #t
select 102030, 'Роман Павлович', 2000, '20.01.2009'
union all
select 102030, 'Роман Павлович', 1500, '23.01.2009'
union all
select 102030, 'Роман Павлович', 3000, '25.01.2009'
union all
select 102030, 'Роман Павлович', 1020, '25.01.2009'
union all
select 102010, 'Максим Никович', 2000, '16.01.2009'
union all
select 102010, 'Максим Никович', 3500, '18.01.2009'
union all
select 102010, 'Максим Никович', 6700, '23.01.2009'


нужна сделать выписка, примерно в таком виде....

ID	ID_Doc       Name	        INRest        Summa         OUTRest         OffDate
102010	10001        Максим Никович	    0	      2000               2000         2009-01-16
102010	10002        Максим Никович	 2000	      3500               5500         2009-01-18
102010	10003        Максим Никович      5500	      6700              12200         2009-01-23
102030	20001        Роман Павлович	    0	      2000               2000         2009-01-20
102030	20002        Роман Павлович	 2000	      1500               3500         2009-01-23
102030	20003        Роман Павлович	 3500	      3000               6500         2009-01-25
102030	20004        Роман Павлович	 6500         1020               7520         2009-01-25

Спасибо за внимание...
22 июл 14, 17:23    [16342644]     Ответить | Цитировать Сообщить модератору
 Re: Реализовать выписка...  [new]
Алексей Куренков
Member [заблокирован]

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

SQL2012, SQL2000
22 июл 14, 17:28    [16342678]     Ответить | Цитировать Сообщить модератору
 Re: Реализовать выписка...  [new]
Владислав Колосов
Member

Откуда:
Сообщений: 8805
Поищите "нарастающий итог" по форуму.
22 июл 14, 17:30    [16342708]     Ответить | Цитировать Сообщить модератору
 Re: Реализовать выписка...  [new]
gandjustas
Member

Откуда:
Сообщений: 857
Блог
Joris,

SUM OVER(PARTITION name ORDER BY offdate ROWS UNBOUNDED PRECEDING)
22 июл 14, 19:16    [16343311]     Ответить | Цитировать Сообщить модератору
 Re: Реализовать выписка...  [new]
Joris
Member

Откуда:
Сообщений: 186
Вот из примеров я сделал так, но оно работает очень медленно. В База данных почти 170 тысяч записей
	SELECT 
		t1.ID,
		Max(t1.ID) as ID_Doc,
		Max(t1.Name) as Name,		
	        (SELECT SUM(t2.Summa) FROM #T t2 WHERE t1.ID = t2.ID and t1.Offdate > t2.Offdate) as RestIN,
		 SUM(t1.Sum) as Doc_Sum, 
        	(SELECT SUM(t2.Summa) FROM #T t2 WHERE t1.ID = t2.ID and t1.Offdate > t2.Offdate) as RestOut,
		Max(t1.OffDate) as OffDate	
	FROM #t t1
	Group By ID
25 июл 14, 15:07    [16358147]     Ответить | Цитировать Сообщить модератору
 Re: Реализовать выписка...  [new]
Joris
Member

Откуда:
Сообщений: 186
у кого есть идея для улучшения скорость обработка запроса, пожалуйста поделитесь.....
25 июл 14, 15:10    [16358168]     Ответить | Цитировать Сообщить модератору
 Re: Реализовать выписка...  [new]
Владислав Колосов
Member

Откуда:
Сообщений: 8805
Некорректно написан запрос. Неужели сложно ткнуть по ссылкам выше? Паралич воли? :)
25 июл 14, 16:07    [16358612]     Ответить | Цитировать Сообщить модератору
Все форумы / Microsoft SQL Server Ответить