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

Откуда:
Сообщений: 375
Не могу понять как правильней сделать.
Есть некая таблица платежей и эти платежи могут пользователи вводить за любую дату, но в тоже время нужно посчитать нарастающий итог после каждой операции.

Таблица в стиле код inc, дата без времени(могут ставить любую), приход, расход

Намекните как?
21 май 14, 15:42    [16049601]     Ответить | Цитировать Сообщить модератору
 Re: Нарастающий итог со смещением даты  [new]
Glory
Member

Откуда:
Сообщений: 104760
verve
Есть некая таблица платежей и эти платежи могут пользователи вводить за любую дату, но в тоже время нужно посчитать нарастающий итог после каждой операции.

А операция что тогда ?
21 май 14, 15:46    [16049642]     Ответить | Цитировать Сообщить модератору
 Re: Нарастающий итог со смещением даты  [new]
verve
Member

Откуда:
Сообщений: 375
Какая операция?
21 май 14, 15:48    [16049665]     Ответить | Цитировать Сообщить модератору
 Re: Нарастающий итог со смещением даты  [new]
verve
Member

Откуда:
Сообщений: 375
Glory
verve
Есть некая таблица платежей и эти платежи могут пользователи вводить за любую дату, но в тоже время нужно посчитать нарастающий итог после каждой операции.

А операция что тогда ?


Операция - это и есть платёж
21 май 14, 15:49    [16049672]     Ответить | Цитировать Сообщить модератору
 Re: Нарастающий итог со смещением даты  [new]
Glory
Member

Откуда:
Сообщений: 104760
verve
Операция - это и есть платёж

И в чем проблема получить нарастающий итог по возрастанию/убыванию даты ?
21 май 14, 15:52    [16049705]     Ответить | Цитировать Сообщить модератору
 Re: Нарастающий итог со смещением даты  [new]
verve
Member

Откуда:
Сообщений: 375
дата без времени и ставится вручную и может быть выставлена любая, ну в стиле сегодня делаем операции за позавчера после того, как уже сделали сегодняшний день.
Нумерация и даты по разному идут
21 май 14, 15:58    [16049762]     Ответить | Цитировать Сообщить модератору
 Re: Нарастающий итог со смещением даты  [new]
Glory
Member

Откуда:
Сообщений: 104760
verve
дата без времени и ставится вручную и может быть выставлена любая, ну в стиле сегодня делаем операции за позавчера после того, как уже сделали сегодняшний день.
Нумерация и даты по разному идут

И что это меняет ?
ORDER BY пересатет работать или сравнение на больше-меньше не работает ?
21 май 14, 15:59    [16049775]     Ответить | Цитировать Сообщить модератору
 Re: Нарастающий итог со смещением даты  [new]
vikkiv
Member

Откуда: London
Сообщений: 2712
verve - Нарастающий итог в этой-же таблице? Или в другой? Можно тригером реализовать (after update .. insert/update .. sum() from origtable)
21 май 14, 18:39    [16050870]     Ответить | Цитировать Сообщить модератору
 Re: Нарастающий итог со смещением даты  [new]
Wlr-l
Member

Откуда:
Сообщений: 522
verve,
столбец Код является автоинкрементным, следовательно, он монотонно возрастает. Делайте нарастающий итог по этому столбцу.

Можно добавить столбец "Дата внесения данных" (datetime) с значением по умолчанию getdate() и не давайте пользователям возможность в него записывать. Кроме нарастающих итогов можно будет контролировать введенные даты.
22 май 14, 13:55    [16054917]     Ответить | Цитировать Сообщить модератору
 Re: Нарастающий итог со смещением даты  [new]
iap
Member

Откуда: Москва
Сообщений: 47001
Wlr-l,

что значит "монотонно"?
Впрочем, в любом случае Вы наговариваете на IDENTITY.
Ниоткуда его обязательное возрастание не следует.
22 май 14, 14:04    [16055018]     Ответить | Цитировать Сообщить модератору
 Re: Нарастающий итог со смещением даты  [new]
verve
Member

Откуда:
Сообщений: 375
Вот в том то и дело, что нарастает, только не в той последовательности как следовало бы для расчета итога.
3820 01.01.2014
3821 02.01.2014
3822 02.01.2014
3824 01.01.2014
3825 03.01.2014
Некоторые данные выпадают из запроса DATA<=@DATA and NUM<=@NUM
2 июн 14, 11:56    [16105089]     Ответить | Цитировать Сообщить модератору
 Re: Нарастающий итог со смещением даты  [new]
Glory
Member

Откуда:
Сообщений: 104760
verve
Некоторые данные выпадают из запроса DATA<=@DATA and NUM<=@NUM

А почему они не должны выпадать, если написали такие условия фильтрования ?
2 июн 14, 11:58    [16105102]     Ответить | Цитировать Сообщить модератору
 Re: Нарастающий итог со смещением даты  [new]
verve
Member

Откуда:
Сообщений: 375
Получается, что надо что-то мутить с ROW_NUMBER... Или у кого-нить есть идеи?
2 июн 14, 12:18    [16105311]     Ответить | Цитировать Сообщить модератору
 Re: Нарастающий итог со смещением даты  [new]
Glory
Member

Откуда:
Сообщений: 104760
verve
Получается, что надо что-то мутить с ROW_NUMBER... Или у кого-нить есть идеи?

А зачем номер, если вам нужен нарастающий итог по дате ?
2 июн 14, 12:21    [16105328]     Ответить | Цитировать Сообщить модератору
 Re: Нарастающий итог со смещением даты  [new]
churupaha
Member

Откуда: Краснодар
Сообщений: 1015
verve
Не могу понять как правильней сделать.
Есть некая таблица платежей и эти платежи могут пользователи вводить за любую дату, но в тоже время нужно посчитать нарастающий итог после каждой операции.

Таблица в стиле код inc, дата без времени(могут ставить любую), приход, расход

Намекните как?


[sql]
create index idx_idx1 on tbl1(c1, c2) include (val);

select
sum(val) over(partition by c1 order by c2 >>>rows<<< between unbounded preceding and current row) as running_total
from
tbl1
[/sql]
2 июн 14, 12:40    [16105518]     Ответить | Цитировать Сообщить модератору
 Re: Нарастающий итог со смещением даты  [new]
churupaha
Member

Откуда: Краснодар
Сообщений: 1015
create index idx_idx1 on tbl1(c1, c2) include (val);

select
sum(val) over(partition by c1 order by c2 rows between unbounded preceding and current row) as running_total
from
tbl1
2 июн 14, 12:41    [16105529]     Ответить | Цитировать Сообщить модератору
Все форумы / Microsoft SQL Server Ответить