Quantcast
Channel: SQL.ru: OLAP и DWH
Viewing all 1167 articles
Browse latest View live

Выступление Сергея Полехина - Архитектора решений компании Qlik

$
0
0
Кто интересуется продуктами компании Qlik - очень рекомендую посмотреть выступление Сергея Полехина - Архитектора решений компании Qlik.

Что нового, что такое BigData Indexing, как Qlik работает с BigData и как он строит свои индексы не для работы "в памяти", а внутри BD, как правильно построить приложения с OnLineDataGeneration (ODAG), Qlik на Linux, Multicloud и многих прочих полезностях.

Если будут вопросы - задавайте, я ему передам и попрошу ответить.

Презентацию можно скачать по это ссылке.


Коротенько, на пару часиков:



Tableau vs PowerBI vs QLik vs TIBCO

$
0
0
Кто-нибудь пользовался хотя бы двумя из перечисленных систем? Какие впечатления, какие существенные и несущественные плюсы/минусы, удобства? Какие вообще цены? У них у всех инфа закрытая, блин. Напр., QLIK или TIBCO


Я трогал только PowerBI.
В и-нете только общая сравнительная инфа.
Но вот я в PowerBI помещаю список из 1000 фамилий на слайд, и выбор одной из них -просто мучение, потому что невозможно в текстовом поле просто ввести "Щукина". Обязательно его нужно листать до самого конца, чтобы выбрать нужные элементы. И ещё немного бесявый он какой-то - нет возможности "сбросить все фильтры", при попытке переместить элемент по экрану, нужно взять где-то за рамку, которой не видно, в противном случае будет выбран один из пунктов. Многие элементы вообще нифига не настраиваются, типа расстояний отступов между текстом и кнопками, ну и так далее.

Вот подобного уровня сравнения где что удобнее, а где нифига - нигде не нахожу.

SSAS 2012 Process Full равно ProcessData плюс ProcessIndex

$
0
0
Добрый день всем.

SSAS 2012

Job выполнился успешно там есть 2 шага для одного куба
77 BI Processing Data
78 BI Processing Index

в 1-м <Type>ProcessData</Type>
в 2-м <Type>ProcessIndex</Type>


а данных в кубе были НЕ полные (отсутстовали некоторые дни ) !!
во вью на основе к-й построен 100% они были - проверял.

Помог билд с VS - (т.е Process Full)

Вопрос Process Full = ProcessData + ProcessIndex
Всегда или нюансы есть

SSIS: Ругается, что не может обновить компоненты на новую версию

$
0
0
Привет!

Бред какой-то!
Вчера все работало, сегодня прихожу, запускаю в Visual Studio пакет SSIS и выдает кучу ошибок, что
/The component meradata for "......" could not be upgraded to the newer Version of the component. The PerformUpgrade method failed./
Причем, выдает это для того пакета, который из под главного пакета через Execute Package запускается.
Если же я все закрываю и открываю этот дочерний пакет напрямую и запускаю сразу его, то ошибок нет! Это как понимать?!

HELP!!! Мне сегодня всё здавать клиенту и такая хрень.
Ах, да, еще важно - SSIS от MSSQL 2014

SSIS: [Execute Package] и относительные пути

$
0
0
Привет!

Как сделать так, чтобы дочерние пакеты запускались из той же папки, что и основной?
Ну, чтобы в коннекшенах-путях_к_пакетам, не собирать путь, склеивая с данными из конфигурации.
Устроит вариант, где через скрипт сначала вычислится папка, где был запущен текущий пакет.
Я пробовал, но что-то не могу я добраться до полного пути (а оттуда путь к папке) корневого пакета.

MDX percent of parent

$
0
0
Здравствуйте

Есть запрос, отображающий долю продукта от общего количества (мера QuantityPart).
Мера расчитывается корректно, если набор продуктов указать (Point 1), но данные расчитываеются в разрезе каждого продукта из набора.

Если набор указывается в срезе (Point 2), то QuantityPart возвращает #Error.

Необходимо отобразить данные без разбивки по продуктам.
Как правильно переписать запрос?


WITH MEMBER [Measures].[QuantityPart] AS [Measures].[Quantity]/(ROOT([Product]), [Measures].[Quantity]), format_string = '0.00%'
SELECT
{
[Measures].[Quantity],
[Measures].[QuantityPart]
} ON 0,
NON EMPTY
{
{[Product].[A], [Product].[B]} --Point 1
Geography...
} ON 1
FROM [IMS]
WHERE
(
{[Product].[A], [Product].[B]} --Point 2
)

SSAS 2016. Не работают форматы значений в EXCEL

$
0
0
Добрый день! Создал куб по продажам (analysis services multidimensional and data mining project).

В одном из полей выбрал формат (FormatString) = Currency
Картинка с другого сайта.

Проблема в том, что когда подключаюсь к кубу через Excel 2016, значение отражаются без формата. Раньше таких проблем не возникало.

Прочитал, что нужно в Excel включить галочки. Проверил у меня всё включено, но форматы всё равно не работают((
Картинка с другого сайта.

Кто-нибудь может подсказать куда копать? Или это глюк какой-то SSAS? Или может настройки сервера не пропускать формат?

SSAS Иерархия в измерении - как вывести не сумму потомков, а значение конкретного элемента

$
0
0
Есть естественная иерархия (Федеративное устройство России) в ней несколько уровней.
И есть данные с населением по этим уровням и по датам.
Надо вывести эти данные в куб.
Используется мера с агрегацией LastChild и вычисляемая мера
Примерно вот так:

SCOPE ([Федеративное устройство].[Объект].Members);
[Measures].[Численность населения] = (
[Федеративное устройство].[Объект].CurrentMember.DataMember,
[Measures].[Численность населения последнее]
);
END SCOPE;

Просто без иерархии все выводится правильно
Проблема возникает при выводе с иерархией - в значение населения например по области добавляются значения городов этой области и цифра примерно удваивается.
Ранее иерархия была типа Parent-Child и все работало.
Сейчас переделали на естественную иерархию и не получается корректно вывести данные.
Может кто-то сталкивался с подобным, или может посоветует куда посмотреть, как правильно написать SCOPE для естественной иерархии.

BIG_COUNT

$
0
0
Всем привет!

Куб mssql а бд postgres
куб формирует запрос big_cout

function big_cout(integer) does not exist

Кто то встречался с подобной проблемой? есть workaround ?

SSAS Фильтр по вычислению

$
0
0
Всем добрый день!
Есть измерение “Справочник цен”. В нем дата начала цены, дата окончания и сама цена.
Есть измерение “Время”.
Нужна возможность выбрать дату и получить цену.
Сделали вычисление
[AMOUNTCALC] = IIF(CDate([Справочник цен].[Item Id].CurrentMember.Properties("From Date", TYPED))<= CDate([Время].[Дата].CurrentMember.Properties("Key", TYPED)) AND
CDate([Справочник цен].[Item Id].CurrentMember.Properties("To Date", TYPED))>= CDate([Время].[Дата].CurrentMember.Properties("Key", TYPED))
,[Справочник цен].[Item Id].CurrentMember.Properties("AMOUNT", TYPED)
,0)
Допустим в справочнике 1000 цен. На 24.05.2019 действуют 5 цен. В excel в строки выводим “Справочник цен”, в значения “AmountCalc” (действующая цена). Получаем 995 строк с AmountCalc = 0 и 5 строк с ценами.
Вопрос: Как не отображать строки с 0?

Выгрузить даты по заданным условиям

$
0
0
Здравствуйте!

Есть задача выгрузить даты
 {[Начало дата предыдущего года]:[Окончание дата предыдущего года],[Начало дата текущего года]:[Окончание дата текущего года]}

по следующим условиям:
1. Начало дата текущего года: Берем вчерашний день. От этого дня определяем дату как первое число соответствующего месяца и года.
2. Окончание дата текущего года: Берем вчерашний день. От этого дня определяем дату.
3. Начало дата предыдущего года: Берем вчерашний день. От этого дня определяем дату как первое число соответствующего месяца и года. Далее минусуем год. Прибавляем один день.
4. Окончание дата предыдущего года: Берем вчерашний день. От этого дня определяем дату. Далее минусуем год. Прибавляем один день.

В итоге, должно получится так
Если сейчас 31.05.2019, то для текущего года: 1.05.2019-30.05.2019, а для предыдущего: 2.05.2018-31.05.2018
Если сейчас 1.06.2019, то для текущего года: 1.05.2019-31.05.2019, а для предыдущего: 2.05.2018-1.06.2018
Если сейчас 2.06.2019, то для текущего года: 1.06.2019-01.06.2019, а для предыдущего: 2.06.2018-2.06.2018

Написал такой MDX-запрос.
+MDX-запрос
WITH
SET [Текущая дата] AS
	[Время].[Дата].&[2019-06-03T00:00:00]
SELECT
{} ON 0,
{StrToMember("[Время].[Дата].&[" + VBA!Format(VBA!Dateadd('yyyy', -1, VBA!Dateadd('d', -1, [Текущая дата].Item(0).MEMBERVALUE)), 'yyyy-MM-01T00:00:00') + "]").Lead(1):
			StrToMember("[Время].[Дата].&[" + VBA!Format(VBA!Dateadd('yyyy', -1, VBA!Dateadd('d', -1, [Текущая дата].Item(0).MEMBERVALUE)), 'yyyy-MM-ddT00:00:00') + "]").Lead(1),
			StrToMember("[Время].[Дата].&[" + VBA!Format(VBA!Dateadd('d', -1, [Текущая дата].Item(0).MEMBERVALUE), 'yyyy-MM-01T00:00:00') + "]"):
			StrToMember("[Время].[Дата].&[" + VBA!Format(VBA!Dateadd('d', -1, [Текущая дата].Item(0).MEMBERVALUE), 'yyyy-MM-ddT00:00:00') + "]")}
ON 1
FROM PROFIT
Из условии берем третий пункт. 3. Начало дата предыдущего года: Берем вчерашний день. От этого дня определяем дату как первое число соответствующего месяца и года. Далее минусуем год. Прибавляем один день. То есть надо определить текущий день, отнять один день, определили как первое число, минус год, прибавить 1 день. А в MDX-получается определили текущий день, отняли один день, минус год, определили как первое число, прибавляем 1 день. Выделенные шаги будто местами поменялись и в MDX-запросе этот пункт якобы не корректно работает.

Вместо этого
StrToMember("[Время].[Дата].&[" + VBA!Format(
	VBA!Dateadd('yyyy', -1, 
		VBA!Dateadd(
			'd',
		 	-1,
		 [Текущая дата].Item(0).MEMBERVALUE)),
	 'yyyy-MM-01T00:00:00') + "]").
	Lead(1)
написал так
StrToMember("[Время].[Дата].&[" + VBA!Format(
	VBA!Dateadd(
		'yyyy',
		 -1,
		StrToMember(
			"[Время].[Дата].&[" + VBA!Format(
				VBA!Dateadd(
					'd',
					 -1,
					[Текущая дата].Item(0).MEMBERVALUE), 
			'yyyy-MM-01T00:00:00') + "]").MEMBERVALUE),
		'yyyy-MM-01T00:00:00') + "]").
	Lead(1)


Мне кажется запрос написал не оптимально и слишком сложно. Скажите, как можно проще написать и чтоб корректно учитывался третий пункт?

MSAS 2017. Смена типов данных ключевых полей

$
0
0
Добрый день.
Только начинаю работать с MSAS.
(
--Развернуто
Microsoft Visual Studio Professional 2017 Версия 15.9.11
SQL Server Integration Services Версия 15.0.1100.123
Службы SQL Server Analysis Services 15.0.1331.137
)

Подскажите плз как не перестраивая заново связи между таблицами, обработать след. ситуацию:
- при изменения типа данных ключевого поля таблицы фактов в БД, как унаследовать это изменение в представление источников данных?

Т.е. в представлении источников данных связываю справочники и факт. Одна из связей не пробрасывается из-за несовпадения типов.
Меняю тип данных в БД, но на уровне модели ничего не меняется.

Если меняю тип поля в справочнике, то все просто (убрать-добавить эту таблицу в представление источников данных и снова сделать одну связь)
А если действовать таким же способом при смене типа данных ключевого поля в таблице фактов, то рушатся все связи, что очень неудобно.

Есть другой способ обойти такую ситуацию? Может не нашел кнопочки "обновить модель"? Или какой-то воркэраунд?

Спасибо!

Оптимизация MDX

$
0
0
Здравствуйте!

Есть MDX-запрос
+
WITH
MEMBER [Measures].[Поставки план по ТТ] AS
	SUM(					
			FILTER(
					[SKU].[SKU].[SKU],
					([Торговые точки].[Код ТТ].CurrentMember, [Measures].[Поставки SKU план])>0
				),
			[Measures].[Поставки SKU план])

SELECT
	{[Measures].[Реализация кг]
	,[Measures].[Поставки SKU план]
	,[Measures].[Поставки план по ТТ]
	} ON 0,
NON EMPTY
	[Торговые точки].[Код ТТ].&[00001грд]*
	[SKU].[SKU].[SKU]
//HAVING
//	[Measures].[Поставки план]>0 
ON 1
FROM
	PROFIT
WHERE
	([Время].[Месяц].&[2019-05-01T00:00:00],
	[Города].[Город].&[28],
	[SKU].[ТОП-5 SKU].&[True])

Выдает такой нужный результат:
Код ТТSKUРеализация кг Поставки SKU план Поставки план по ТТ
000001грд SKU11.64.031.0
000001грд SKU2(null)9.031.0
000001грд SKU3(null)9.031.0
000001грд SKU4(null)9.031.0
000001грд SKU5(null)(null)31.0

То есть выгружаются только TOP-5 SKU, у кого есть план по ТТ+SKU и у кого нету, а также отгружены и не отгружены. Показать план по ТТ.
Время выполнения - 1 секунда.

Если вместо
[Торговые точки].[Код ТТ].&[00001грд]*

написать так
[Торговые точки].[Код ТТ].[Код ТТ]*

то есть выгружать по [Города].[Город].&[28], то выгружает 3 мин 19 сек.

Нужно выгружать по всем городам, и еще будут присутствовать другие обычные и вычисляемые меры, а также атрибуты.

1. Скажите, как можно оптимизировать MDX-запрос? Возможно тут надо по другому меру написать.

2. Заметил, когда условие из WHERE переносишь в субкуб, то дольше выгружается. Должно же быть наоборот. Почему так?

SSAS 2012 общие вопросы по бест-практис разбивки кубов по БД и раздаче прав

$
0
0
Добрый день всем.

SSAS 2012 (MDM)

Имеем одну AS БД в к-й сейчас есть 8-12 кубов (8 рабочих) ( +- 60 ролей )
Планы добавить еще 10-20 кубов.
Данных не так чтобы оч. много - продажи и т.д ( общий фулл процессинг 3 часа - ночью пока )

Где то 12 +- общих димов пока ( на самом деле больше ибо на каждый куб заводились свои димы - сейчас там 6+ димов дат и т.д
но это я переделываю по тиху )

1) Деплой на localhost идет быстро
на прод. где то 12+ минут из VS - долговато уже.

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

Какие еще плюсы-минусы ??

Как народ делает ? Ссылки велком


2) Планируется сделать раздачу ролей в кубах через ексель
( я читал.
https://www.sql.ru/forum/1311447/razdacha-prav-v-ssas-po-tablice-v-bd-kak
http://dvbi.ru/articles/reading/smid/640/ArticleCategory/9/SSAS-permissions-and-MDS
)
но нач. этапе роли будут фиксированы ( вводиться ТОЛЬКО МНОЙ В КУБЕ)
- надо только закрпеление ползовательей за ними дать одному продвинутомю юзеру-админу.

План такой Execl --> SSIS --> таблицы
-- > SSAS (Xmla) через линк.сервер - запуск скрипта

2b) вот думаю можно ли без MDS ( сталкивался как то не очень понравилось )
в Екселе сделать ввод
( юзеров и роли я закину на одтельные листы
вопрос в том как не дать пользователю-админу ввести скажем не существуюещго юзера ( лишние пробелы там )
VBA не хочется заниматься - но возможно прдиется
дать)

http://dvbi.ru/articles/reading/smid/640/ArticleCategory/9/SSAS-permissions-and-MDS

В иделае я б созда 1 роль - 1 виндоуз.группа
и добавлял бы юзеров туда
НО так не выйдет по полит. причинам (админка вин. сервером не у нас и прав добавлять юзерво в группы нет )

2с) Смущает то - если пользователь будет удален с AD - т.е его SID останется только
что произойдет с скриптом выполнения - хотя в T-sql я отловлю ошибку без проблем


3) По мотивам 1) и 2) - если я раскидаю кубы по несколькоим БД
не усложнит ли это 2) - раздачу ролей

Вообщем любые мысли и ссылки велком.

В SSMS выгружает MDX, а в Power BI не выгружает

$
0
0
Здравствуйте!

Есть работающий MDX-запрос в SSMS.

+
WITH
MEMBER [Продукция].[Категория продукции].[Категория1] AS
	AGGREGATE(
		{{[Продукция].[Категория продукции].&[10]}*
		{[Продукция].[Общий бренд].&[2]}}
		)
MEMBER [Продукция].[Категория продукции].[Категория2] AS
	AGGREGATE(
		{{[Продукция].[Категория продукции].&[10]}*
		{[Продукция].[Общий бренд].&[22]}}
	)
...
	)
MEMBER [Продукция].[Категория продукции].[Категория5] AS
	AGGREGATE(
		{{[Продукция].[Категория продукции].&[17]}*
		{[Продукция].[Общий бренд].[Общий бренд]}}
	)
SET [Группа продукции] AS
	{[Продукция].[Категория продукции].[Категория1],
		[Продукция].[Категория продукции].[Категория2],
		[Продукция].[Категория продукции].[Категория3],
		[Продукция].[Категория продукции].[Категория4],
		[Продукция].[Категория продукции].[Категория5}
		
SELECT
	{[Measures].[Реализация кг]}
ON 0,
NON EMPTY
	[Торговые точки].[Регион ТТ].[Регион ТТ]*
	[Города].[Регион].[Регион]*
	[Группа продукции]
ON 1
FROM
	(SELECT
		([Время].[Месяц].&[2019-05-01T00:00:00],
		{[Торговые точки].[Тип клиента].&[4],
			[Торговые точки].[Тип клиента].&[1]}
			) On 0 FROM Profit)
В SSMS выдает нужный результат.

Если этот запрос запустить в Power BI, то выдает ошибку Expression.Error: Столбец "[Торговые точки].[Регион ТТ].[Регион ТТ].[MEMBER_CAPTION]" таблицы не найден. Сведения: [Торговые точки].[Регион ТТ].[Регион ТТ].[MEMBER_CAPTION].

Если закомментировать выделенную строку, то в Power BI выгружается данные.

Почему так? Как правильно написать?

SSAS список куб - дим

$
0
0
Добрый день всем.
SSAS 2012

Как можно быстро вытащить ( в csv , В ексель )
список куб - дим из SSAS
чтобы понять какие димы в каких кубах юзаются
( димов 50, кубов 10+ )

SSAS Деплой мемберов в роль когда есть удаленный с AD юзер

$
0
0
Добрый день всем.

SSAS 2012
Есть удаленный с AD юзер.
S-1-5-21-4161265347-369500967
вот так они выглядит в xmla роли
хочу добавить в роль еще одного нового юзера
а он мне ошибку генерит

<Alter AllowCreate="true" ObjectExpansion="ObjectProperties" xmlns="http://schemas.microsoft.com/analysisservices/2003/engine">
<Object>
<DatabaseID>RTL</DatabaseID>
<RoleID>Role 5</RoleID>
</Object>
<ObjectDefinition>
<Role xmlns:>
<ID>Role 5</ID>
<Name>роль 1</Name>
<Members>
<Member>
<Name>RTL\user1</Name>
</Member>
<Member>
<Name>RTL\user2</Name>
</Member>

<Member>
<Name>S-1-5-21-4161265347-3695009679-2536772180-6989</Name>

</Member>

вручную я конечно удалил этого юзера из роли и добавил нового и все заработало

но мне надо будет добавлять автоматически (данные будут брать из екселя-> sql таблицы)
запускаться xmla через линк-сервер
я понимаю что придется формировать такой файл xmla целиком

как сделать так чтобы одна ошибочная запись (удаленная) - не портила весь процесс
( в идеале добавить одного member если его нет )

зы как-то ж VS задеплоила мне на localhost проект
и в роли S-1-5- пользователь то остался

Сделать MDX-запрос более динамичным

$
0
0
Здравствуйте!

Есть такая простая задачка. Нужно выгрузить ТТ, у которых не было отгрузок с января по апрель 2019, но появились в мае 2019.

Для этого нужно выгрузить все ТТ, которые отгружались в каком то месяце, а потом определять новая или не новая ТТ.

Написал такой запрос
+1-й вариант
WITH
MEMBER [Время].[Месяц].[Предыдущий период] AS
	AGGREGATE([Время].[Месяц].&[2019-01-01T00:00:00]:
                           [Время].[Месяц].&[2019-04-01T00:00:00])
MEMBER [Measures].[Предыдущий период Отгрузки количество ТТ] AS
	SUM([Время].[Месяц].[Предыдущий период],
		[Measures].[Отгрузки количество ТТ])
MEMBER [Measures].[Анализируемый период Отгрузки количество ТТ] AS
	SUM([Время].[Месяц].&[2019-05-01T00:00:00],
		[Measures].[Отгрузки количество ТТ])
MEMBER [Measures].[Новая ТТ] AS
	(CASE WHEN
		[Measures].[Предыдущий период Отгрузки количество ТТ]  = 0
		AND
		[Measures].[Анализируемый период Отгрузки количество ТТ] > 0
		THEN
			'Да'
		END)
SELECT
	{[Measures].[Предыдущий период Отгрузки количество ТТ],
	[Measures].[Анализируемый период Отгрузки количество ТТ],
	[Measures].[Новая ТТ]}
ON 0,
NON EMPTY
	[Города].[Город].[Город]*
	[Торговые точки].[Регион ТТ].[Регион ТТ]*
	[Торговые точки].[Код ТТ].[Код ТТ]
ON 1
FROM
	(SELECT
		([Время].[Месяц].&[2019-01-01T00:00:00]:[Время].[Месяц].&[2019-05-01T00:00:00],
		[Торговые точки].[Тип клиента].&[2]		
		) ON 0 FROM PROFIT)
Время выполнения 6 минут 12 секунд при выгрузке 38 000 строк.

Если написать по другому
+2-й вараинт
WITH
MEMBER [Measures].[Месяц1 Отгрузки количество ТТ] AS
	SUM([Время].[Месяц].&[2019-01-01T00:00:00],
		[Measures].[Отгрузки количество ТТ])
MEMBER [Measures].[Месяц2 Отгрузки количество ТТ] AS
	SUM([Время].[Месяц].&[2019-02-01T00:00:00],
		[Measures].[Отгрузки количество ТТ])
MEMBER [Measures].[Месяц3 Отгрузки количество ТТ] AS
	SUM([Время].[Месяц].&[2019-03-01T00:00:00],
		[Measures].[Отгрузки количество ТТ])
MEMBER [Measures].[Месяц4 Отгрузки количество ТТ] AS
	SUM([Время].[Месяц].&[2019-04-01T00:00:00],
		[Measures].[Отгрузки количество ТТ])
MEMBER [Measures].[Предыдущие месяцы Отгрузки количество ТТ] AS
	(CASE WHEN
	[Measures].[Месяц1 Отгрузки количество ТТ] = 1
	OR
	[Measures].[Месяц2 Отгрузки количество ТТ] = 1
	OR
	[Measures].[Месяц3 Отгрузки количество ТТ] = 1 
	OR
	[Measures].[Месяц4 Отгрузки количество ТТ] = 1
	THEN
		1
	ELSE
		null
	END)
MEMBER [Measures].[Месяц5 Отгрузки количество ТТ] AS
	SUM([Время].[Месяц].&[2019-05-01T00:00:00],
		[Measures].[Отгрузки количество ТТ])
MEMBER [Measures].[Новая ТТ] AS
	(CASE WHEN
		[Measures].[Предыдущие месяцы Отгрузки количество ТТ] = 0
		AND
		[Measures].[Месяц5 Отгрузки количество ТТ] > 0
		THEN
			'Да'		
	END)
		
SELECT
	{[Measures].[Предыдущие месяцы Отгрузки количество ТТ],
	[Measures].[Месяц5 Отгрузки количество ТТ],
	[Measures].[Новая ТТ]}
ON 0,
NON EMPTY
	[Города].[Город].[Город]*
	[Торговые точки].[Регион ТТ].[Регион ТТ]*
	[Торговые точки].[Код ТТ].[Код ТТ]
HAVING
	[Measures].[Отгрузки количество ТТ] > 0
ON 1
FROM
	(SELECT
		([Время].[Месяц].&[2019-01-01T00:00:00]:[Время].[Месяц].&[2019-05-01T00:00:00],
		[Торговые точки].[Тип клиента].&[2]	
		) ON 0 FROM PROFIT)
Время выполнения 31 сек. при выгрузке 38 000 строк.

Но второй вариант не динамичен. Если надо будет добавить еще месяц, то нужно корректировать запрос в разных местах. То есть май попадает в предыдущий период (добавляется MEMBER), в MEMBER [Предыдущие месяцы Отгрузки количество ТТ] добавляем слагаемое, а июнь как анализируемый делаем.

Скажите, как можно оптимальнее и динамичнее написать?

Данные в кубе и во вью не совпадают

$
0
0
Добрый день всем.
SSAS 2012

Есть вью Bi1 на основе к-го построены меры.

по ОДНОМУ ДОКУМЕНТУ :
SELECT * FROM BI1 where id_postavka = 4301229

строки
Сумма с НДС Себестоимость УУ Сумма без НДС
-13,0656 -9,456 -11,8778
-13,0656 -9,364 -11,8778

там есть 3 числовах поля
Ночью куб сбилдился ОК.

в кубе - Себестоимость УУ считатея ОК !!!
а в остальных 2 полях стоят 0-ли

я дабл-килаю и дрилльюс до позиции - и точно
[Финансовые меры].[Сумма с НДС] [Финансовые меры].[Себестоимость УУ] [Финансовые меры].[Сумма Без НДС]
0 -9,456 0
0 -9,364 0


секция calculate пустая
Процесс куба стоит FULL
(<Type>ProcessIndexes</Type> - зачем то отдельным шагом потом еще стоит - пока оставил - но не в ней же причина )

Данные за 2018 год - разумных объяснинй не нахожу - вью за ночь не могло измениться.
Если бы что не доехало до димов ( там Porcee Update) - так запись бы просто НЕ попала

Перестроить куб пока не могу - вечером

Любые идеи ПОЧЕМУ - велком.

расчет меры по условию

$
0
0
Добрый день!
Необходимо создать меру, которая будет выводить данные только по одному атрибуту измерения.

iif([Причины].[Признак Неисполнения].currentmember.membervalue="Не OT" and [SSL].[Измененная Дата Доставки].currentmember.membervalue>[SSL].[Требуемая Дата Доставки].currentmember.membervalue,[Measures].[Факт Отгрузки Дал],null)

Если прописать меру так, то необходимо выводить [Признак Неисполнения],[Требуемая Дата Доставки],[Измененная Дата Доставки] в сводную таблицу.
Подскажите, как прописать меру, чтобы она отрабатывала, даже если эти атрибуты будут неактивны.
Viewing all 1167 articles
Browse latest View live