Гость
Целевая тема:
Создать новую тему:
Автор:
Форумы / OLAP и DWH [игнор отключен] [закрыт для гостей] / Расчет задолженности/переплаты / 15 сообщений из 15, страница 1 из 1
22.09.2005, 07:55
    #33282691
dmitry_kz
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Расчет задолженности/переплаты
Работаю в MS AS 2000.

Есть таблица фактов (назовем ее facts) в которой хранятся проводки по лицевому счету. Лицевой счет - это уникальная комбинация налогоплательщик, налог, орган. Налогоплательщику могут начилять суммы по налогу в каком-то органе. Он соответственно их гасит платежами. В таблице facts регистрируются проводки по начислениям с минусом, а проводки по поступлениям с плюсом. Таким образом, если просуммировать по лицевому счету операции, то получим сальдо на лицевом счете. Если сальдо <0, то это считается задолженность, а если >0 то переплата.

Мне необходимо определить сумму задолженности и переплаты в разрезе налогов по всем налогоплательщикам на какую-нибудь дату.

Подскажите, пожалуйста, кто как решал такую задачу?

Структура таблицы фактов на данный момент у меня такова:

TaxPayer - налогоплательщик
Tax - налог
Org - организация
opDate - дата проводки
opType - начисление/платеж
summa - сумма операции
...
Рейтинг: 0 / 0
22.09.2005, 08:06
    #33282702
ShIgor
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Расчет задолженности/переплаты
сколько будете платить? давайте из расчета 50уе в час... думаю черновой вариант за пару часов набросаем... :)) только деньги вперед... :))
...
Рейтинг: 0 / 0
22.09.2005, 09:25
    #33282820
Eldar
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Расчет задолженности/переплаты
В чем проблема-то я так и не понял

делай измерения:

дата
начисление/платеж
налогоплательщик
налог и т.д.

и вперед...
...
Рейтинг: 0 / 0
22.09.2005, 10:36
    #33282972
Dmitry Biryukov
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Расчет задолженности/переплаты
ну и СМ не забудь. пробегал уже много раз под названием "остаток"
...
Рейтинг: 0 / 0
22.09.2005, 14:04
    #33283674
Валентин К
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Расчет задолженности/переплаты
Все решали такую задачу, потому что сальдо по контрагенту - базовая часть в оборотках и пр в любой учетной системе.
...
Рейтинг: 0 / 0
07.12.2005, 16:28
    #33422954
dmitry_kz
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Расчет задолженности/переплаты
Уважаемые форумчане, вынужден все же вернуть тему, т.к. для меня много осталось не ясным...

Поискал я поиском по слову "остатки", "задолженность", "итоги" и подобные слова. Прочитал много тем. Поигрался в ОЛАП. Но так и не нашел пока для себя решения моей задачи...

В общем опишу еще раз ее подробнее...

Есть таблица фактов Fact:

налогоплательщик (А и В)
налог ("101101" и "101102")
налоговый орган (taxOrg1 b taxOrg2)
дата проводки
тип проводки (начисление/уплата)
сумма проводки

Все кроме "сумма проводки" - это измерения, а "сумма проводки" - это мера.
Стоит задача определения суммы задолженности и переплаты в разрезе налогов на определенную дату.

Сделал я следующее:

Добавил СМ: "остаток на начало".
Разнес "остаток на начало" на 2 колонки: "недоимка" - если "остаток на начало"<0 и "переплата" - если "остаток на начало">0.

Если делаю вот такой MDX-запрос:

Код: plaintext
1.
2.
3.
4.
select
{[Measures].[Остаток на начало],[Measures].[Недоимка],[Measures].[Переплата]} ON COLUMNS,
{[to_dim].Members * [tax_dim].Members * [tp_dim].Members} ON ROWS
from test
where [date_dim].[YQMD].[All date_dim].[ 2005 ].[Quarter  1 ].[Февраль].[ 1 ]

то получаю таблицу, как показано на рис.1.

Как можно получить таблицу, показанную на рисунке 2. Что-то я не могу понять, как изменить MDX-запрос, чтобы получить при таком наборе данных таблицу рис. 2.

Помогите, пожалуйста...
...
Рейтинг: 0 / 0
07.12.2005, 16:48
    #33423041
Alex Fox
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Расчет задолженности/переплаты
Видится мне один вариант. Но очень рискованный и трудоёмкий...
Сопряжено с адскими затратами и офигенным риском потери всего...
А вот если НЕ НАПИСАТЬ в select ...[Measures].[Остаток на начало],...и получить
Код: plaintext
1.
select
{[Measures].[Недоимка],[Measures].[Переплата]} ON COLUMNS,....
это подойдёт? ;)
...
Рейтинг: 0 / 0
07.12.2005, 17:11
    #33423117
dmitry_kz
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Расчет задолженности/переплаты
Alex FoxВидится мне один вариант. Но очень рискованный и трудоёмкий...
Сопряжено с адскими затратами и офигенным риском потери всего...
А вот если НЕ НАПИСАТЬ в select ...[Measures].[Остаток на начало],...и получить
Код: plaintext
1.
select
{[Measures].[Недоимка],[Measures].[Переплата]} ON COLUMNS,....
это подойдёт? ;)

Это да, но главное то во всем это, то что мне не надо еще показывать в разрезе налогоплательщиков, т.е. А и В мне не надо отображать, но они коренным образов влияют на суммы. Если из MDX-запроса убрать "* [tp_dim].Members", то я получу совсем не тот результат, что показан на рис. 2.
...
Рейтинг: 0 / 0
07.12.2005, 17:22
    #33423157
Alex Fox
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Расчет задолженности/переплаты
автор...то я получу совсем не тот результат, что показан на рис. 2 А какой?
...
Рейтинг: 0 / 0
07.12.2005, 17:35
    #33423193
dmitry_kz
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Расчет задолженности/переплаты
Alex Fox автор...то я получу совсем не тот результат, что показан на рис. 2 А какой?

Вот такой :) Отличия от рис. 2 выделены на рис. 2 красным цветом.
...
Рейтинг: 0 / 0
07.12.2005, 20:38
    #33423562
awg1
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Расчет задолженности/переплаты
2 dmitry_kz а таблички в чем "нарисованы" ???
...
Рейтинг: 0 / 0
07.12.2005, 23:59
    #33423723
Dmitry Biryukov
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Расчет задолженности/переплаты
awg12 dmitry_kz а таблички в чем "нарисованы" ???mdx samle application + pbrush :-)
...
Рейтинг: 0 / 0
08.12.2005, 07:01
    #33423876
dmitry_kz
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Расчет задолженности/переплаты
Dmitry Biryukov awg12 dmitry_kz а таблички в чем "нарисованы" ???mdx samle application + pbrush :-)

Абсолютно верно :-)
...
Рейтинг: 0 / 0
08.12.2005, 08:30
    #33423953
ShIgor
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Расчет задолженности/переплаты
а что мешает считать недоимку и переплату по отдельности?
не проверять после вычисления "остаток на начало", а именно суммировать отрицательные отдельно, положительные отдельно?
...
Рейтинг: 0 / 0
08.12.2005, 08:52
    #33423983
dmitry_kz
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Расчет задолженности/переплаты
Наткнулся я тут на ветку, где обсуждали SOLVE_ORDER :-)

Ура!!! Кажется получилось...

Посмотрите, пожалуйста, правильно ли я составил MDX-запрос?

Код: plaintext
1.
2.
3.
4.
5.
6.
7.
with
member [tp_dim].[tp_total] AS 'Sum({[tp_dim].[Name].Members})', SOLVE_ORDER =  100 
member [tax_dim].[tax_total] AS 'Sum({[tax_dim].[Name].Members})', SOLVE_ORDER =  101 
select
{[Measures].[Недоимка],[Measures].[Переплата]} ON COLUMNS,
{[to_dim].Members * {[tax_dim].[tax_total], [tax_dim].[Name].Members} * {[tp_dim].[tp_total]}} ON ROWS
from test
where [date_dim].[YQMD].[All date_dim].[ 2005 ].[Quarter  1 ].[Февраль].[ 1 ]

При его выполнении получаю вроде то, что нужно, см. Рис.

Теперь появились немного другие вопросы:

1. Почему надо указывать SOLVE_ORDER = 100, а не, например, 99. Если укажу 99, то суммы "-50" не считает :(
2. Можно ли не выводить столбец, в котором одни только "tp_total"?
...
Рейтинг: 0 / 0
Форумы / OLAP и DWH [игнор отключен] [закрыт для гостей] / Расчет задолженности/переплаты / 15 сообщений из 15, страница 1 из 1
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


Просмотр
0 / 0
Close
Debug Console [Select Text]