|
Накопительный итог
|
|||
---|---|---|---|
#18+
Здравствуйте. Подскажите, есть таблица с коэффициентами. Нужно сначала упорядочить таблицу по коэффициентам от большего к меньшему (это легко делается в Access) и далее в следующем столбце нужно рассчитать накопительный итог. Где первая ячейка соответственно будет равна первой ячейке коэффициентов и далее прибавляем по 1 строке. Изначальная таблица Коэффициент578421963 Упорядоченная таблица Коэффициент987654321 Накопительный итог Коэффициент Накопительный итог99817724630535439342244145 ... |
|||
:
Нравится:
Не нравится:
|
|||
04.03.2018, 10:56 |
|
Накопительный итог
|
|||
---|---|---|---|
#18+
Im_Max, Хранить в таблице вычисляемые значения есть не правильно, ваша "хотелка" элементарно реализуется в отчете(свойство сумма с накоплением) или чуть сложней в запросе(создается копия таблицы с сортировкой по убыванию и суммируются значения меньше содержащегося в текущей записи таблицы отсортированной по возрастанию (сортировка таблиц может быть противоположенной,в зависимости от желаемого результата) ... |
|||
:
Нравится:
Не нравится:
|
|||
04.03.2018, 11:11 |
|
Накопительный итог
|
|||
---|---|---|---|
#18+
sdku, Мне этот столбец нужен дальше для вычислений. Потому вариант это сделать в отчете не устраивает. Про второй вариант не совсем понял, можно чуточку подробнее? ... |
|||
:
Нравится:
Не нравится:
|
|||
04.03.2018, 11:15 |
|
Накопительный итог
|
|||
---|---|---|---|
#18+
Im_Max, Код: sql 1. 2. 3.
... |
|||
:
Нравится:
Не нравится:
|
|||
04.03.2018, 11:19 |
|
Накопительный итог
|
|||
---|---|---|---|
#18+
Вот как преобразил код запрос Access Код: sql 1. 2. 3.
Ошибку выдает в итоге: ... |
|||
:
Нравится:
Не нравится:
|
|||
04.03.2018, 12:11 |
|
Накопительный итог
|
|||
---|---|---|---|
#18+
Поправил синтаксис. Появился расчет. Строка в запросе выглядит так: накопительный коэффициент: DSum("[коэффициент]";"[Коэф]";"[коэффициент]>=" & '[коэффициент]') Но результат это сумма всех коэффициентов для каждой строки. ... |
|||
:
Нравится:
Не нравится:
|
|||
04.03.2018, 12:27 |
|
Накопительный итог
|
|||
---|---|---|---|
#18+
Im_Max, можно пойти по другому пути. Циклом пройтись по таблице и обновлением проставить суммы ... |
|||
:
Нравится:
Не нравится:
|
|||
04.03.2018, 12:58 |
|
Накопительный итог
|
|||
---|---|---|---|
#18+
Tarasios, В 90% я работаю в окне построителя запросов. Могу простые SQL написать. Я так понял можно немного Dsum подправить, что бы все правильно работало? ... |
|||
:
Нравится:
Не нравится:
|
|||
04.03.2018, 13:02 |
|
Накопительный итог
|
|||
---|---|---|---|
#18+
-прошу пардонить меня-все еще проще чем я написал(извиняюсь-не внимательно прочел) -"выражение" в запросе не обязательно(введено чтоб было удобней проверить работу запроса) -хранить поле накопление не следует-это избыточная информация(создайте функцию и используйте её для дальнейших вычислений. Про вычисляемые поля ) ... |
|||
:
Нравится:
Не нравится:
|
|||
04.03.2018, 13:20 |
|
Накопительный итог
|
|||
---|---|---|---|
#18+
Вдогонку: Код: vbnet 1.
Ваша ошибка-опострофы(их быть не должно) ... |
|||
:
Нравится:
Не нравится:
|
|||
04.03.2018, 13:27 |
|
Накопительный итог
|
|||
---|---|---|---|
#18+
sdku, Про опострофы на этом форуме нашел это. ТАм похожая проблема была с синтаксисом. Как раз наоборот без них идет ошибка, о которой я писал выше. А с ними идет вычисление, просто ошибочное, нужен накопительный итог а не сумма по всем коэффициентам. ... |
|||
:
Нравится:
Не нравится:
|
|||
04.03.2018, 14:10 |
|
Накопительный итог
|
|||
---|---|---|---|
#18+
sdkuВдогонку: Код: vbnet 1.
Ваша ошибка-опострофы(их быть не должно) Буду завтра разбирать Ваши пример, большое спасибо, думаю должно все получиться ... |
|||
:
Нравится:
Не нравится:
|
|||
04.03.2018, 14:11 |
|
Накопительный итог
|
|||
---|---|---|---|
#18+
sdku, Сделал все как в Вашем примере. Все равно выдает ошибку. Стал разбираться. Единственное отличие наших запросов в том что у Вас в примере коэффициент это Длинное целое, в своем посте я тоже для примера указал что коэффициент это длинное целое. На самом деле у меня коэффициенты это Двойное с плавающей точкой. Там достаточно маленькие значения с кучей знаков после запятой. Так вот, я изменил в Вашей таблице формат данных Коэф на Двойное с плавающей точкой. Вставил туда значения из своей таблицы и запрос стал тоже выдавать ошибку. Получается Dsum не работает с "Двойное с плавающей точкой" ? ... |
|||
:
Нравится:
Не нравится:
|
|||
05.03.2018, 06:26 |
|
Накопительный итог
|
|||
---|---|---|---|
#18+
В принципе преобразовал в длинное целое. И тогда формула работает, только 1 осталось поправить. Идет накопительный итог начиная с самого меньшего. А мне нужно наоборот, с самого большого. Как сейчас Коэфф Накопительный112336410515621728836945 Как нужно: Коэфф Накопительный99817724630535439342244145 ... |
|||
:
Нравится:
Не нравится:
|
|||
05.03.2018, 07:21 |
|
Накопительный итог
|
|||
---|---|---|---|
#18+
Все заработало. Только вот столкнулся с тем, что это ОЧЕНЬ долго работает. Настолько что это не возможно использовать. В итоге все что я хотел сделать, это найти накопительный итог (он у меня привязан к товарам, может из-за них так долго стал работать). И при достижении этого итога определенного значения у меня товарам присваивается категория. У товаров есть доля. Мне нужно упорядочить товары по убыванию этой доли, далее найти товар при котором накопительно доля составит 80% от общей доли по всем товарам. Это АВС анализ. Так как накопительный итог для каждого товара считается очень долго, можно ли найти товар, на котором доля накопительно стала равна 80% от общей доли. Т.е. не рассчитывать доли для каждого товара, а найти именно пограничный товар, и соответственно все товары с долей выше найденного будут иметь одну категорию. Это можно сделать в Access? ... |
|||
:
Нравится:
Не нравится:
|
|||
05.03.2018, 08:43 |
|
Накопительный итог
|
|||
---|---|---|---|
#18+
Код: vbnet 1. 2. 3. 4.
... |
|||
:
Нравится:
Не нравится:
|
|||
05.03.2018, 08:53 |
|
Накопительный итог
|
|||
---|---|---|---|
#18+
Im_MaxВсе заработало. Только вот столкнулся с тем, что это ОЧЕНЬ долго работает... Доменные функции вообще не быстрые (на больших массивах данных это заметно ощущается), но они также легко заменяются на соответствующие подзапросы :) Код: sql 1. 2. 3.
... |
|||
:
Нравится:
Не нравится:
|
|||
05.03.2018, 21:04 |
|
|
start [/forum/topic.php?fid=45&msg=39610420&tid=1611632]: |
0ms |
get settings: |
11ms |
get forum list: |
14ms |
check forum access: |
4ms |
check topic access: |
4ms |
track hit: |
64ms |
get topic data: |
10ms |
get forum data: |
2ms |
get page messages: |
50ms |
get tp. blocked users: |
1ms |
others: | 276ms |
total: | 436ms |
0 / 0 |