powered by simpleCommunicator - 2.0.60     © 2026 Programmizd 02
Целевая тема:
Создать новую тему:
Автор:
Закрыть
Цитировать
Форумы / OLAP и DWH [игнор отключен] [закрыт для гостей] / Помогите, пожалуйста, составить MDX-запрос (MS AS 2K)
5 сообщений из 5, страница 1 из 1
Помогите, пожалуйста, составить MDX-запрос (MS AS 2K)
    #33293593
dmitry_kz
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Я в MDX, как и во всем AS, пока новичек и потому обращаюсь к вам за советом и помощью.

Подскажите, пожалуйста, как можно составить MDX-запрос из вот такого SQL-запроса:

Код: plaintext
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
11.
12.
13.
SELECT 
taxId, 
sum(case when summa< 0  then summa else  0  end) AS 'summa1', -- задолженность
sum(case when summa> 0  then summa else  0  end) AS 'summa2'  -- переплата
FROM
(
SELECT taxId, tpId, orgId, modeId, sum(summa) AS 'summa'
FROM table_fact
WHERE dt <= '<определенная дата>'
and option =  1 
GROUP BY taxId, tpId, orgId, modeId
) AS T
GROUP BY taxId

Я сделал таблицу фактов table_fact. ее структура следующая:

tpId - ссылка на измерение клиентов
taxId - ссылка на измерение налогов
orgId - ссылка на измерение организаций
modeId - ссылка на измерение режима работы с клиентом
dt - дата проводки
option - тип оплаты
summa - сумма проводки (для поступлений знак "+", для начислений знак "-")

Мне же надо получить отчет вида:

Налог Задолженность Переплата
Налог1 100 20
Налог2 50 150
.....

т.е. в разрезе налогов посмотреть задолженность и переплату.

Я почитав форум по поиску слова "остаток", куда меня изначально послали, добавил CM в таблицу фактов для расчета начального и конечного остатков.

А как переложить GROUP BY из SQL на MDX что-то ну никак не пойму...
Подскажите плиз... Ну или примеры такого рода запросов приведите плиз...
Причем именно где в GROUP BY более одного поля.
...
Рейтинг: 0 / 0
Помогите, пожалуйста, составить MDX-запрос (MS AS 2K)
    #33294014
Dmitry Biryukov
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
надо сделать две физ меры
case when summa<0 then summa else 0 end и
case when summa>0 then summa else 0 end
а потом уже накатывать формулу остатков
...
Рейтинг: 0 / 0
Помогите, пожалуйста, составить MDX-запрос (MS AS 2K)
    #33294169
dmitry_kz
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Dmitry Biryukovнадо сделать две физ меры
case when summa<0 then summa else 0 end и
case when summa>0 then summa else 0 end
а потом уже накатывать формулу остатков

Если я правильно вас понял, то если я добавлю в таблицу table_fact два поля, то это же получится, что я разделю собственно по знаку их и получу отдельно в одном столбце суммы начислений, а в другом суммы поступлений. И создав 2 CM на эти столбцы будут остатки по начислениям и по поступлениям...

А мне же надо получить сальдо по комбинации tpId, taxId, orgId, modeId. Например:
10 февраля 2005 года клиенту (Вася) начислили по налогу (А) в организации (B) по режиму (С) сумму 100 рублей.
Сальдо у нас стало "-100" рублей (задолженность 100 рублей)
15 февраля 2005 года Вася проплатил по налогу (А) в организацию (В) по режиму (С) сумму 110 рублей.
Сальдо у нас стало "+10" рублей (переплата 10 рублей)
Но при этом тому же Васе могли 12 февраля 2005 года начислить по налогу (А2) в организацию (В) по режиму (С) сумму 70 рублей.
И еще могли Пете начислить 12 февраля 2005 года по налогу (А) в организацию (В) по режиму (С) сумму 200 рублей.

Вот на основе этого получается такая картина:

Строим отчет на 10 февраля 2005 г.:

Налог - Задолженность - Переплата
(А) - 100 - 0

Строим отчет на 12 февраля 2005 г.:
Налог - Задолженность - Переплата
(А) - 300 - 0
(А2) - 70 - 0

Строим отчет на 15 февраля 2005 г.:
Налог - Задолженность - Переплата
(А) - 200 - 10
(А2) - 70 - 0

Или я что-то не так понял в том что Вы мне сказали? :)
...
Рейтинг: 0 / 0
Помогите, пожалуйста, составить MDX-запрос (MS AS 2K)
    #33294365
Dmitry Biryukov
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
вроде всё правильно... а что не нравится?
если надо итоговое сальдо то сделайте ещё один СМ как разница двух уже существующих
...
Рейтинг: 0 / 0
Помогите, пожалуйста, составить MDX-запрос (MS AS 2K)
    #33294678
dmitry_kz
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Dmitry Biryukovвроде всё правильно... а что не нравится?
если надо итоговое сальдо то сделайте ещё один СМ как разница двух уже существующих

Если сделать как Вы говорите, тогда на основе примера в моем предыдущем посте я получу следующее:

Строим отчет на 10 февраля 2005 г.:

Налог - Задолженность - Переплата
(А) - 100 - 0

Строим отчет на 12 февраля 2005 г.:
Налог - Задолженность - Переплата
(А) - 300 - 0
(А2) - 70 - 0

Строим отчет на 15 февраля 2005 г.:
Налог - Задолженность - Переплата
(А) - 300 - 110 ( в отличии от нужного 200 - 10)
(А2) - 70 - 0

Или я не прав?
...
Рейтинг: 0 / 0
5 сообщений из 5, страница 1 из 1
Форумы / OLAP и DWH [игнор отключен] [закрыт для гостей] / Помогите, пожалуйста, составить MDX-запрос (MS AS 2K)
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


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