powered by simpleCommunicator - 2.0.60     © 2026 Programmizd 02
Целевая тема:
Создать новую тему:
Автор:
Закрыть
Цитировать
Форумы / OLAP и DWH [игнор отключен] [закрыт для гостей] / Distinct Count multiply by Quantity
11 сообщений из 11, страница 1 из 1
Distinct Count multiply by Quantity
    #33692893
Pi
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Построен отдельный куб, считающий Distinct Count по клиентам (Clients).

У пользователей отчетов возникла потребность умножать полученное число по клиенту на количество его торговых точек (Outlets).

Само количество Outlets у каждого Client известно, но сделки поступают только аггрегированные до уровня Client.

Первая идея - это перемножить, но вот перемножить у меня не получается.

Кто-нибудь сталкивался с этой задачей?

Среда -
MS Analisys Services 2000,
Excel, OWC
...
Рейтинг: 0 / 0
Distinct Count multiply by Quantity
    #33693015
Владимир Штепа
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
А при чем сдесь сделки?

количество торговых точек есть Property клиента?
Это моментальное свойство или зависит от рассматриваемого периода времени?

Короче, как соотносится клиент со своими торговыми точками?
...
Рейтинг: 0 / 0
Distinct Count multiply by Quantity
    #33695791
Pi
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
backfireА при чем сдесь сделки?

количество торговых точек есть Property клиента?
Это моментальное свойство или зависит от рассматриваемого периода времени?

Короче, как соотносится клиент со своими торговыми точками?

Distinct Count я считаю по совершенным сделкам.

Количество торговых точек я могу сделать и Property клиента, и поле в таблице фактов.

Пока считается, что у клиента одно и тоже постоянное количество торговых точек (заказчик еще не задумался над этим моментом и упустил из виду что со временем это число может меняться).

Thanks in advance!
...
Рейтинг: 0 / 0
Distinct Count multiply by Quantity
    #33695813
Jurii
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
2 Pi:

Приведите конкретный пример - несколько исходных записей, и что нужно получить. А то мне например не понятен смысл задачи...
И планируете ли Вы переходить с MS AS 2000 на 2005? А то некоторая функциональность связанная с Distinct Count (например мультиселект) в MS AS 2000 не реализована.
...
Рейтинг: 0 / 0
Distinct Count multiply by Quantity
    #33695861
Pi
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
переходить с MS AS 2000 на 2005 до сдачи проекта мне не позволят.

Запись о сделке - это кому (клиент), что (товар), сколько(количество) продано.

При этом клиент у нас может быть предприниматель с одной или с 2,3,...10 точками в городе. Это - свойство клиента.

Мне нужно посчитать, во сколько разных торговых точек города продан конкретный товар за период.

Количество разных клиентов я считаю в отдельном кубе как Distinct Count, но мне надо еще умножать на количество торговых точек у клиента.

Если я ввожу еще одно измерение - оно, естественно, на верхних уровнях аггрегации считает неправильно.
...
Рейтинг: 0 / 0
Distinct Count multiply by Quantity
    #33696257
ShIgor
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
исходя из задачи, я понял, что Вам надо не пермножать DC клиентов на кол-во их точек, а просто это кол-во точек просуммировать. поэтому предлагаю следующее: создайте свойство клиента - кол-во точек и создайте CM который их просуммирует, а клиентов отсейте по фильтру... примерно так:

Код: plaintext
1.
2.
3.
4.
5.
6.
SUM(
 Filter(
  Descendants([Клиенты].[(All)],,Leaves),
  Measures.[Кол-во сделок] >  0 
 ),
 StrToValue ([Клиенты].CurrentMember.Properties("Кол-во точек")
)

P.S.
А Вы уверены, что Ваш клиент завезет купленый товар во все свои точки? :)
...
Рейтинг: 0 / 0
Distinct Count multiply by Quantity
    #33697993
Pi
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
ShIgorисходя из задачи, я понял, что Вам надо не пермножать DC клиентов на кол-во их точек, а просто это кол-во точек просуммировать. поэтому предлагаю следующее: создайте свойство клиента - кол-во точек и создайте CM который их просуммирует, а клиентов отсейте по фильтру... примерно так:

Код: plaintext
1.
2.
3.
4.
5.
6.
SUM(
 Filter(
  Descendants([Клиенты].[(All)],,Leaves),
  Measures.[Кол-во сделок] >  0 
 ),
 StrToValue ([Клиенты].CurrentMember.Properties("Кол-во точек")
)

P.S.
А Вы уверены, что Ваш клиент завезет купленый товар во все свои точки? :)
Я бы просуммировал количество точек, если бы я мог. Но я не могу - это свойство клиента.
Скрипт сейчас буду пробовать.
А что такое CM, кстати ?

Что ж касается завоза во все точки... Конечно неуверен, но пока считаем так.
...
Рейтинг: 0 / 0
Distinct Count multiply by Quantity
    #33698850
ShIgor
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
СМ - это Calculated Measure (Member в зависимости от контекста).
Насчет свойства клиента - вот эта строка и переделывает свойство в значение:
Код: plaintext
StrToValue ([Клиенты].CurrentMember.Properties("Кол-во точек"))
правда некоторые рекомендуют писать так:
Код: plaintext
StrToValue ("0" + [Клиенты].CurrentMember.Properties("Кол-во точек"))
...
Рейтинг: 0 / 0
Distinct Count multiply by Quantity
    #33705812
Pi
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
ShIgorСМ - это Calculated Measure (Member в зависимости от контекста).
Насчет свойства клиента - вот эта строка и переделывает свойство в значение:
Код: plaintext
StrToValue ([Клиенты].CurrentMember.Properties("Кол-во точек"))
правда некоторые рекомендуют писать так:
Код: plaintext
StrToValue ("0" + [Клиенты].CurrentMember.Properties("Кол-во точек"))


ShIgor, thanks a lot, it is I really wanted!

Но, как оказалось, конечная проблема умножением не решается, точнее говоря, на самом нижнем уровне (Клиенты) результат верен, но на любом другом уровне аггрегации я получаю "#VALUE!".
...
Рейтинг: 0 / 0
Distinct Count multiply by Quantity
    #33706905
ShIgor
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
у Вас измерение клиент многоуровневое?
если да тогда можно попробовать переделать этот CM, в такой, который будет переводит свойство клиента в значение в зависимости от уровня. например обзовем его Measures.[КолТочек]
Код: plaintext
1.
2.
3.
4.
IIF ( 
  Isleaf([Клиенты].CurrentMember),
  StrToValue ( "0" + [Клиенты].CurrentMember.Properties("Кол-во точек")), 
  SUM( Filter(Descendants([Клиенты].CurrentMember,,Leaves), Measures.[Кол-во сделок] >  0 ), Measures.[КолТочек])
)  
...
Рейтинг: 0 / 0
Distinct Count multiply by Quantity
    #33712094
Pi
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
ShIgor
Код: plaintext
1.
2.
3.
4.
IIF ( 
  Isleaf([Клиенты].CurrentMember),
  StrToValue ( "0" + [Клиенты].CurrentMember.Properties("Кол-во точек")), 
  SUM( Filter(Descendants([Клиенты].CurrentMember,,Leaves), Measures.[Кол-во сделок] >  0 ), Measures.[КолТочек])
)  

ShIgor,
огромное спасибо, это именно то, что нужно!
...
Рейтинг: 0 / 0
11 сообщений из 11, страница 1 из 1
Форумы / OLAP и DWH [игнор отключен] [закрыт для гостей] / Distinct Count multiply by Quantity
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


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